python - 使用 pandas 联合列值组

标签 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 或空格,并使用 # 分隔符连接所有值。

最佳答案

第一个replace所有Nan和blank为np.nan,然后dropna,问题就变得简单groupby 聚合 加入

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

关于python - 使用 pandas 联合列值组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54622779/

相关文章:

python - Pandas 合并并完成具有相同 id 的行

python - 如何使用 pandas 更快地计算相对体积?

python - 如何获取适合 isinstance() 的 pymongo 数据库类?

python - 如何将多类别数据框绘制为单个箱线图

python - Pandas 从数据框中选择不连续的列

python - 重新索引缺少类别的多级索引

python - 迭代 pandas 数据框并将新值插入空列

python - 在 Dataframe 中的滚动窗口上应用一个函数,其中将整个数据帧传递给函数

python - 在 Flask 应用程序中设置和检索环境变量

python - PyCharm 使用 Mypy 吗?