这里最好是创建索引
code
列和减法
Series
:
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
返回行(可能是bug):
df_code_grp_by = df.groupby(['code'])
df = df_code_grp_by.apply(lambda x: x.date2 - x.date1)
print (df)
0 1 2
code
2000 1209600000000000 1209600000000000 1209600000000000
可能的解决方案是使用
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