pandas groupby函数只返回null值作为输出


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')

最新更新