Pandas/datetime/总秒数:numpy.timedelta64' 对象没有属性 'total_seconds'



我有一个数据框。 我将两个日期列转换为日期时间格式。我想以分钟为单位计算差异。但是我收到以下错误。

from datetime import datetime
df['A'] = df['A'].apply(lambda t: datetime.strptime(t, '%Y-%m-%d %H:%M:%S'))
df['B'] = df['B'].apply(lambda t: datetime.strptime(t, '%Y-%m-%d %H:%M:%S'))
df['C'] = ((df['B']-df['A']).apply(lambda x:x.total_seconds()/60.))

我收到此错误:

AttributeError: 'numpy.timedelta64' object has no attribute 'total_seconds'

任何帮助将不胜感激。

编辑:小数据集工作正常:

df = pd.DataFrame({'A':['2015-09-01 00:02:34', '2015-09-02 00:02:34'],'B': ['2015-09-02 00:02:34', '2015-09-03 00:02:34']})
df['A'] = df['A'].apply(lambda t: datetime.strptime(t, '%Y-%m-%d %H:%M:%S'))
df['B'] = df['B'].apply(lambda t: datetime.strptime(t, '%Y-%m-%d %H:%M:%S'))
df['C'] = ((df['B']-df['A']).apply(lambda x:x.total_seconds()/60.))
df
                    A                   B       C
0 2015-09-01 00:02:34 2015-09-02 00:02:34  1440.0
1 2015-09-02 00:02:34 2015-09-03 00:02:34  1440.0

对于我原来的大数据集,如果我只选择每列的前两行并执行相同的应用函数,我会得到同样的错误。

看来我需要这样做:

df['C'] = (df['B'] - df['A'])/ np.timedelta64(1, 's')

最新更新