你的“时间”列是 dtypetimedelta
正如错误告诉你的那样;你可以使用total_seconds()
方法转换为秒并除以 60 以获得分钟。
如果您想要一个功能齐全的日期时间列,请将“日期”和“时间”组合起来。然后你可以使用.dt.minute
.
Ex:
import pandas as pd
df = pd.DataFrame({'time': pd.to_timedelta(['00:30:45','00:30:45','00:21:06','00:21:06','00:21:06']),
'date': pd.to_datetime(['2020-02-28','2020-02-28','2020-03-09','2020-03-09','2020-03-09'])})
# to get the "total minutes":
df['minutes'] = df['time'].dt.total_seconds()/60
df['minutes']
# 0 30.75
# 1 30.75
# 2 21.10
# 3 21.10
# 4 21.10
# Name: minutes, dtype: float64
[pd.Timedelta 文档] https://pandas.pydata.org/pandas-docs/stable/user_guide/timedeltas.html
# to get a column of dtype datetime:
df['DateTime'] = df['date'] + df['time']
# now you can do:
df['DateTime'].dt.minute
# 0 30
# 1 30
# 2 21
# 3 21
# 4 21
# Name: DateTime, dtype: int64