python - 使用 pandas 联合列值分组
问题描述
我有一个以下数据集。
colA ColB ColC
a 1 aa
a 1 Nan
a 2
a 2 bb
a 2 cc
我想要一个输出如下
colA ColB ColC
a 1 aa
a 2 bb#cc
我正在尝试按 ColA 和 ColB 以及联合 ColC 值进行分组。我尝试在 Pandas 中使用以下代码。但我没有得到
test1 = test(['colA','colB'])['colC'].apply(lambda x: x.sum() )
它必须避免在列中出现 Nan 或空格,并使用 # 分隔符连接所有值。
解决方案
1st replace
all Nan和blank to np.nan
,然后dropna
,问题就变得简单了groupby
agg
join
df=df.replace({'Nan':np.nan,' ':np.nan})
df.dropna().groupby(['colA','ColB'],as_index=False).ColC.agg(','.join)
colA ColB ColC
0 a 1 aa
1 a 2 bb,cc
推荐阅读
- html - Thymeleaf:禁用组件
- gradle - 如何将工件从 gradle 上传到 nexus 存储库?
- azure - 发布 Azure 函数
- java - 如何按对流的键进行分组
- javascript - 路由器在 NavigationStart 事件中导航
- python - -m 选项在 python 中代表什么?
- java - Java RestfulService 不返回 JSONArray
- eclipse - 在 Eclipse 中为 GWT 文本编辑器更改文本字体
- arrays - *ngFor - 在同一级别循环两个数组
- php - Wordpress 使用 AJAX 发布数组数据