【发布时间】:2018-06-04 08:37:00
【问题描述】:
所以我有这个 pandas DataFrame,有 5 列和 100000 行。示例如下:
V1 V2 V3 V4 V5
0 2014 Alfa Romeo 159 1 157
1 2014 Alfa Romeo GIULIETTA 1 119
2 2014 Alfa Romeo GIULIETTA 3 119
我要做的是对 V4 列中的值求和,如果 V1、V2、V3 和 V5 中的值完全相同。
V1 V2 V3 V4 V5
0 2014 Alfa Romeo 159 1 157
1 2014 Alfa Romeo GIULIETTA 4 119
一开始我以为 groupby 可以完成这项工作,但当我这样做时
df.groupby(['V1', V2','V3', 'V5' ]).sum()
我丢失了 V3 列中的一些信息,例如,我应该有 10 种不同类型的颜色,但现在我只有 3 种。 如何解决?
【问题讨论】:
-
lost some of the information in column V3你能详细说明一下吗? -
df.groupby(['V1', 'V2', 'V3', 'V5']).V4.sum().reset_index().reindex(columns=df.columns)适合你吗? -
丢失了V3栏的部分信息 你能详细说明一下吗? – cᴏʟᴅsᴘᴇᴇᴅ 当然。在我的数据库中,我有沃尔沃的 10 种类型(V3 列): XC60 V60 V40 XC70 S60 S80 V70 V40 CROSS COUNTRY 13 XC90 10 V60 HYBRID 1 在我制作 df.groupby(['V1', 'V2', ' V3','V5' ]).agg([ "sum"]) 显示只有V70, XC60, XC70, XC90。这是熊猫的错误吗?你怎么看?
-
df.groupby(['V1', 'V2', 'V3','V5' ],as_index=False).agg([ "sum"])
标签: python pandas numpy jupyter-notebook