如何更改timedelta的时间格式

时间:2018-05-19 00:33:47

标签: python pandas

嗨,我有以下格式的时间点

0days 01:25:53.0000000

我想将此时间增量更改为等效值 分钟(即85.88) 感谢

3 个答案:

答案 0 :(得分:3)

使用 total_seconds

pd.Series(pd.Timedelta('0days 01:25:53.0000000')).dt.total_seconds()/60
Out[334]: 
0    85.883333
dtype: float64

答案 1 :(得分:2)

# Sample DataFrame
                     time
0  0days 01:25:53.0000000

使用 to_timedelta 并除以 pd.Timedelta(1, 'm')

pd.to_timedelta(df.time) / pd.Timedelta(1, 'm')

0    85.883333
Name: time, dtype: float64

答案 2 :(得分:2)

我对您可以选择的不同方法进行了比较:

  1. pip uninstall
  2. df.timedelta / np.timedelta64(1, 'm')(最快为< 10.000行)
  3. df.timedelta.dt.total_seconds().div(60)(最快适用于<10,000行或非常大的集合)
  4. df.timedelta.astype('timedelta64[s]').div(60)(会圆值)。
  5. 注意:这个答案是在欺骗中: Convert timedelta64[ns] column to seconds in Python Pandas DataFrame

    完整示例:

    df.timedelta.astype('timedelta64[m]')

    返回:

    import pandas as pd
    
    df = pd.DataFrame({
        'timedelta': [pd.Timedelta('0days 01:25:53.0000000'),
                      pd.Timedelta('0days 02:25:53.0000000')]
    })
    
    df['timedelta-minutes'] = df.timedelta.astype('timedelta64[s]').div(60)
    print(df)
    

    计时

      timedelta  timedelta-minutes
    0  01:25:53          85.883333
    1  02:25:53         145.883333