RGE*_*TLB 1 python group-by dataframe pandas pandas-groupby
当我使用以下代码时:
print(self.df.groupby(by=[2])[3].agg(['sum']))
Run Code Online (Sandbox Code Playgroud)
在以下Dataframe中:
0 1 2 3 4 5 6 7
0 15 LCU Test 1 308.02 170703 ALCU 4868 MS10
1 16 LCU Test 2 127.37 170703 ALCU 4868 MS10
Run Code Online (Sandbox Code Playgroud)
sum函数未正确完成,因为value列(col 3)返回值的连接字符串(308.02127.37),而不是保持各个值的完整性以允许操作.
看起来你的第3列是一个字符串.您是否使用了数据框加载dtype=str?
此外,尽量不要对列进行硬编码.您可以使用.astype或pd.to_numeric转换然后应用sum:
self.df.groupby(self.df.columns[2])[self.df.columns[3]].agg(
lambda x: pd.to_numeric(x, errors='coerce').sum()
)
Run Code Online (Sandbox Code Playgroud)
要么
self.df.groupby(self.df.columns[2])[self.df.columns[3]].agg(
lambda x: x.astype(float).sum()
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1748 次 |
| 最近记录: |