【问题标题】:Convert Dataframe column to time format in python在python中将Dataframe列转换为时间格式
【发布时间】:2018-05-08 10:41:26
【问题描述】:

我有一个如下所示的数据框列:

它读取M:S.MS。如何将其转换为M:S:MS timeformat,以便将其绘制为时间序列图?

如果我按原样绘制,python 会抛出 Invalid literal for float() 错误。

注意 :这个数据框包含一小时的数据。 Values between 0:0.0 - 59:59.9

【问题讨论】:

    标签: python python-2.7 pandas datetime datetime-format


    【解决方案1】:
    df = pd.DataFrame({'date':['00:02.0','00:05:0','00:08.1']})
    
    print (df)
          date
    0  00:02.0
    1  00:05:0
    2  00:08.1
    

    可以转换成datetime:

    df['date'] = pd.to_datetime(df['date'], format='%M:%S.%f')
    print (df)
                         date
    0 1900-01-01 00:00:02.000
    1 1900-01-01 00:00:05.000
    2 1900-01-01 00:00:08.100
    

    timedeltas:

    df['date'] = pd.to_timedelta(df['date'].radd('00:'))
    print (df)
                 date
    0        00:00:02
    1        00:00:05
    2 00:00:08.100000
    

    编辑:

    用于自定义日期:

    date = '2015-01-04'
    
    td = pd.to_datetime(date) - pd.to_datetime('1900-01-01')
    df['date'] = pd.to_datetime(df['date'], format='%M:%S.%f') + td
    print (df)
                         date
    0 2015-01-04 00:00:02.000
    1 2015-01-04 00:00:05.000
    2 2015-01-04 00:00:08.100
    

    【讨论】:

    • 感谢您的回复。但是有没有办法将所有行的“1900-01-01”更改为另一个日期?
    • 感谢您的回答。这就是我一直在寻找的。但是,您也可以编辑以添加自定义时间吗?谢谢
    • 谢谢jezrael,我真的很感激。这就是我一直在寻找的答案。
    • 我第一次看到radd
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 2012-08-01
    • 2014-09-02
    • 1970-01-01
    相关资源
    最近更新 更多