如何将 Dataframe 的所有 Series 值从 timedelta 转换为分钟

How to convert all Series values of a Dataframe from timedelta to minutes

我有这个数据框,其中每个值的类型都是 timedelta:

并且我想将所有值转换为分钟,但是在编码时:

df['time'] = df['time'].seconds/60

我收到以下错误:

AttributeError: 'Series' object has no attribute 'seconds'

如何以简单的方式转换列的每个值?

谢谢。

使用.dt.total_seconds()代替.seconds:

df['time'] = df['time'].dt.total_seconds() / 60

当你有一个 DatetimeIndex 系列时,你可以访问一个特殊的访问器 dt,它给你一些属性和方法:

df['min'] = df['time'].dt.total_seconds().div(60)
print(df)

# Output
             time   min
0 0 days 00:53:00  53.0
1 0 days 00:45:00  45.0

设置:

df = pd.DataFrame({'time': [pd.Timedelta('0 days 00:53:00'),
                            pd.Timedelta('0 days 00:45:00')]})