【问题标题】:Convert object series to time series in pandas在熊猫中将对象序列转换为时间序列
【发布时间】:2018-07-08 23:30:11
【问题描述】:

我在分析数据框中包含时间列的数据时遇到问题(我从 Excel 文件中打开)。指定列的值如下:

05:29:04、05:36:52、05:43:20、05:50:39、05:57:54

他们假设表示“到达和离开”时间,但在 python 中,该列被识别为对象而不是时间序列。

我不确定我应该怎么做才能将列转换为时间序列 - 我尝试了几个函数,例如 to_datetimetimestamp 但不断收到错误,所以我不确定我是否完全理解如何转换列。

【问题讨论】:

    标签: python pandas datetime timestamp time-series


    【解决方案1】:

    我认为您需要通过to_timedelta 将值转换为timedeltas

    df = pd.DataFrame({'A':list('abcde'),
                       'B':[4,5,4,5,5],
                       'col':['05:29:04', '05:36:52', '05:43:20', '05:50:39', '05:57:54']})
    
    print (df)
       A  B       col
    0  a  4  05:29:04
    1  b  5  05:36:52
    2  c  4  05:43:20
    3  d  5  05:50:39
    4  e  5  05:57:54
    
    df['col'] = pd.to_timedelta(df['col'])
    
    print (df.dtypes)
    A               object
    B                int64
    col    timedelta64[ns]
    dtype: object
    

    如果将其转换为日期时间,则默认添加years、montha 和days:

    df['col'] = pd.to_datetime(df['col'], format='%H:%M:%S')
    print (df)
    
       A  B                 col
    0  a  4 1900-01-01 05:29:04
    1  b  5 1900-01-01 05:36:52
    2  c  4 1900-01-01 05:43:20
    3  d  5 1900-01-01 05:50:39
    4  e  5 1900-01-01 05:57:54
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-08
      • 2018-08-04
      • 2019-01-24
      • 2021-01-14
      • 2023-02-06
      • 2022-10-07
      相关资源
      最近更新 更多