【问题标题】:Datetime object in DataFrame with just timeDataFrame 中的 Datetime 对象,只有时间
【发布时间】:2020-08-04 06:17:22
【问题描述】:

这是普通的列

0       06:55:22
1       06:55:23
2       06:55:24
3       06:55:25
4       06:55:26

我想将该列放在索引中,问题是当我尝试使用方法 resample() 时,我总是遇到同样的问题:

TypeError: 仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但获得了 'Index' 的实例

我一直在使用它来将时间列更改为

datetime dt['Time'] = pd.to_datetime(dt['Time'],format).apply(lambda x: x.time())

【问题讨论】:

    标签: python pandas datetime object indexing


    【解决方案1】:

    您可以使用set_indexTime 列设置为数据框的索引。

    In [1954]: df.set_index('Time')                                                                                                                                                                             
    Out[1954]: 
              a
    Time       
    06:55:23  1
    06:55:24  2
    06:55:25  3
    06:55:26  4
    

    OP 评论后更新

    如果您没有date 列,那么当您将其转换为datetime 时,pandas 会附加一个默认日期1900-01-01。像这样:

    In [1985]: pd.to_datetime(df['Time'], format='%H:%M:%S')                                                                                                                                                    
    Out[1985]: 
    0   1900-01-01 06:55:23
    1   1900-01-01 06:55:24
    2   1900-01-01 06:55:25
    3   1900-01-01 06:55:26
    Name: Time, dtype: datetime64[ns]
    

    【讨论】:

    • 主要问题是我无法将 dtype:object 更改为该列的日期时间,并将该列作为日期时间放在索引中...
    • @renton 你也有date 专栏吗?如果没有,我已经提供了解决方案。请检查我的更新答案。
    • 不,我没有,但我只需要时间,我不想要日期...,这可能吗,或者程序总是需要一个日期来制作我的东西想要
    • 如果你不给出日期,它会添加一个默认日期。请检查我的答案的第二部分。
    • 是的,那将是理想的。
    猜你喜欢
    • 2017-08-11
    • 1970-01-01
    • 2017-12-11
    • 2020-09-04
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    相关资源
    最近更新 更多