Python 3.x 熊猫属性错误:';数据帧';对象没有属性';dt';使用“在groupby上应用”时
我有以下Python 3.x 熊猫属性错误:';数据帧';对象没有属性';dt';使用“在groupby上应用”时,python-3.x,pandas,dataframe,pandas-groupby,Python 3.x,Pandas,Dataframe,Pandas Groupby,我有以下df code date1 date2 2000 2018-03-21 2018-04-04 2000 2018-03-22 2018-04-05 2000 2018-03-23 2018-04-06 当我试着 df_code_grp_by = df.groupby(['code']) df_code_grp_by.apply(lambda x: x.date2 - x.date1).dt.days.sum(level=0).rese
df
code date1 date2
2000 2018-03-21 2018-04-04
2000 2018-03-22 2018-04-05
2000 2018-03-23 2018-04-06
当我试着
df_code_grp_by = df.groupby(['code'])
df_code_grp_by.apply(lambda x: x.date2 - x.date1).dt.days.sum(level=0).reset_index(name='date_diff_sum')
我得到
AttributeError: 'DataFrame' object has no attribute 'dt'
date1
和date2
都是dtype(更好的方法是通过code
列创建索引,然后减去系列
:
df = df.set_index('code')
df = (df.date2 - df.date1).dt.days.sum(level=0).reset_index(name='date_diff_sum')
print (df)
code date_diff_sum
0 2000 42
代码问题是apply
返回行(可能是错误):
可能的解决方案是使用np.sum
:
df = (df_code_grp_by.apply(lambda x: np.sum(x.date2 - x.date1))
.dt.days
.reset_index(name='date_diff_sum'))
print (df)
code date_diff_sum
0 2000 42
谢谢你的回复,你能告诉我我的手机出了什么问题吗code@daiyue-调查。
df = (df_code_grp_by.apply(lambda x: np.sum(x.date2 - x.date1))
.dt.days
.reset_index(name='date_diff_sum'))
print (df)
code date_diff_sum
0 2000 42