首页 > 解决方案 > Python - Pandas - GroupBy 条件字符串加法

问题描述

目前,在对数据框进行分组时,我无法设置设置列表和过滤的组合。

假设我们有一个如下形式的 DataFrame:

      A       B    C
0    x2   a32cd    1
1    x1   a11aa    0
2    x1     NaN    1 
3    x1   d75dd    0
4    x1   a11aa    1
5    x2   a32cd    1
6    x2   w22xz    0
...

我正在寻找的是对列A(字符串)进行分组,然后列出(字符串)的非重复非空值,B我可以删除列表C(整数)。我正在寻找的最终形式是这样的:

      A           B 
0    x1   [a11aa, d75dd, ...]
1    x2   [a32cd, w22xz, ...]

我正在考虑以某种方式设置它:

df_x.groupby('A')['B'].apply(list)

然后对其应用一些条件,但我似乎找不到它。我应该为它设置一个功能吗?我来自基于 MATLAB 的背景,所以我倾向于逐行遍历整个 DataFrame。但有人告诉我,一旦你考虑在 Pandas 中这样做,可能会有更聪明的方法来做到这一点。

标签: pythonstringpandasgroup-by

解决方案


>>> df.dropna().groupby("A")["B"].unique()
A
x1    [a11aa, d75dd]
x2    [a32cd, w22xz]
dtype: object

推荐阅读