熊猫/日期时间/总秒数:numpy.timedelta64'对象没有属性' total_seconds'

时间:2017-06-22 20:24:11

标签: python pandas datetime numpy

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

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

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

1 个答案:

答案 0 :(得分:1)

我似乎需要这样做:

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