嗨,我有以下格式的时间点
0days 01:25:53.0000000
我想将此时间增量更改为等效值 分钟(即85.88) 感谢
答案 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)
我对您可以选择的不同方法进行了比较:
pip uninstall
df.timedelta / np.timedelta64(1, 'm')
(最快为< 10.000行)df.timedelta.dt.total_seconds().div(60)
(最快适用于<10,000行或非常大的集合)df.timedelta.astype('timedelta64[s]').div(60)
(会圆值)。注意:这个答案是在欺骗中: 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