pandas 将增量时间列转换为一个单独的单位时间
pandas convert delta time column into one sole unit time
我正在使用 pandas 数据框,其中有一个 deltatime 列,其值如下:
{'deltatime': 0 天 09:06:30 , 0 天 00:30:34, 2 天 23:07:14 }
如何将这些时间转换为单个单位,例如分钟或小时,但要将这些时间转换为单个单位,以便在图表中更好地可视化这些时间。
有什么想法吗?
此处:
https://pandas.pydata.org/pandas-docs/stable/user_guide/timedeltas.html
它没有阐明如何简单地改变单位
您可以使用 timedelta
的 total_seconds()
方法来获取其持续时间(以秒为单位):
seconds = [t.total_seconds() for t in df['deltatime']]
然后根据需要转换单位:
#to hours, i.e. 3600 seconds
hours = [t.total_seconds()/3600 for t in df['deltatime']]
你可以这样做:
df['deltatime'] = pd.to_timedelta(df['deltatime']).dt.total_seconds()
输出:
deltatime
0 32790.0
1 1834.0
2 256034.0
您还可以对timedelta
进行算术运算:
# convert to hours
pd.to_timedelta(df['deltatime']) / pd.to_timedelta('1H')
输出:
0 9.108333
1 0.509444
2 71.120556
Name: deltatime, dtype: float64
我正在使用 pandas 数据框,其中有一个 deltatime 列,其值如下:
{'deltatime': 0 天 09:06:30 , 0 天 00:30:34, 2 天 23:07:14 }
如何将这些时间转换为单个单位,例如分钟或小时,但要将这些时间转换为单个单位,以便在图表中更好地可视化这些时间。 有什么想法吗?
此处: https://pandas.pydata.org/pandas-docs/stable/user_guide/timedeltas.html
它没有阐明如何简单地改变单位
您可以使用 timedelta
的 total_seconds()
方法来获取其持续时间(以秒为单位):
seconds = [t.total_seconds() for t in df['deltatime']]
然后根据需要转换单位:
#to hours, i.e. 3600 seconds
hours = [t.total_seconds()/3600 for t in df['deltatime']]
你可以这样做:
df['deltatime'] = pd.to_timedelta(df['deltatime']).dt.total_seconds()
输出:
deltatime
0 32790.0
1 1834.0
2 256034.0
您还可以对timedelta
进行算术运算:
# convert to hours
pd.to_timedelta(df['deltatime']) / pd.to_timedelta('1H')
输出:
0 9.108333
1 0.509444
2 71.120556
Name: deltatime, dtype: float64