maindata['avg_delay']= maindata.groupby('name_customer')['Delay'].mean(numeric_only=False)
maindata.avg_delay
output:
0 NaT
1 NaT
2 NaT
4 NaT
5 NaT
..
49994 NaT
49996 NaT
49997 NaT
49998 NaT
49999 NaT
Name: avg_delay, Length: 40000, dtype: timedelta64[ns]
maindata.groupby('name_customer')['Delay'].mean(numeric_only=False)
为您提供一个值为'name_customer'
的pd.Series
作为系列的索引。请注意,当您将pd.Series
分配给数据帧的列时,分配是按索引进行的。因为maindata
的索引不是来自'name_customer'
的值,所以这两组索引彼此不匹配,因此就是您观察到的结果。
正如医生所说,transform
:
调用在每个组上生成类似索引的DataFrame的函数,并返回一个与原始对象具有相同索引的DataFrame,该原始对象填充了转换后的值
因此您可以使用以下行,但请检查结果是否符合您的需要。
maindata.groupby('name_customer')['Delay'].transform('mean')