如何根据 groupby 列表的多个值对数据框进行子集化

最棒的

我有一个如下所示的数据框

ID,color
1, Yellow
1, Red
1, Green
2, Red
2, np.nan
3, Green
3, Red
3, Green
4, Yellow
4, Red
5, Green
5, np.nan
6, Red
7, Red
8, Green
8, Yellow

fd = pd.read_clipboard(sep=',')
fd = fd.groupby('ID',as_index=False)['color'].aggregate(lambda x: list(x))

正如您在输入数据框中看到的那样,某些 ID 具有与其关联的多种颜色。

现在,我想创建一个数据框的子集,其 ID 具有YellowGreen

因此,我尝试了以下方法并获得了每个 ID 的颜色列表

fd.groupby('ID',as_index=False)['color'].aggregate(lambda x: list(x))

我想检查groupby 列表中的和之类的值,然后对数据框进行子集YellowGreen

我希望我的输出如下所示(只有两个 ID 同时具有黄色和绿色)

ID
1
1
8
8

更新

输入数据框如下所示

在此处输入图像描述

舒巴姆·夏尔马

过滤颜色为黄色或绿色的行,然后将数据框分组ID并转换颜色nunique以检查ID具有 2 个唯一颜色。

s = df[df['color'].isin(['Yellow', 'Green'])]
s.loc[s.groupby('ID')['color'].transform('nunique').eq(2), 'ID']

结果

0     1
2     1
14    8
15    8
Name: ID, dtype: int64

根据新要求更新,这里我假设df1是在以下之后获得的输入数据帧groupby

s = pd.DataFrame([*df1['color']])
df1[s.mask(~s.isin(['Yellow', 'Green'])).nunique(1).eq(2)]

结果:

   ID                 color
0   1  [Yellow, Red, Green]
7   8       [Green, Yellow]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据列表中的值对数据框进行子集化?

根据列表中的值列表对数据框进行子集

在 R 中,如何根据函数内部的值列表正确地对数据框进行子集化?

如何根据索引号对数据框进行子集化?

如何根据R中的多个变量对数据框进行子集化

如何根据多个联合条件在 R 中对数据框进行子集化

如何根据R中两列不匹配的值对数据框进行子集化?

根据其他数据框中的列表对数据框进行子集化

在GroupBy之后根据特定列对数据框进行排序

如何根据另一个数据框中的值对数据框进行子集化

根据列表中的元素对数据框进行子集

如何根据值计数过滤 groupby 数据框

熊猫groupby对每个组值进行排序,并根据每个组的最大值对数据框组进行排序

根据向量列表对数据帧进行子集化

如何在多列的小写值上对数据框进行子集化

如何在日期上对数据框进行子集化?

您如何基于列名对数据框进行子集化?

如何使用熊猫对数据框进行子集化?

如何根据数据框的长度从groupby对象创建文件

想要通过在循环中对数据框进行子集化并根据 i 值分配每个数据框名称来在 R 中创建新数据框

如何使用变量名中的多个正则表达式对数据框进行子集化?

如何使用包含另一个变量的部分字符串的列表对数据框进行子集化

是否可以根据groupby的结果进行groupby?

根据唯一值和其他列数据对数据框进行子集设置

根据R中的多个通配符条件对数据框进行子集

如何使用R函数对数据框进行子集化,并在以后使用该数据框?

如何在熊猫数据框中根据groupby的结果生成所有值对

Mysql Php如何根据groupby获取和合并数据

如何通过列表中的值对数据框进行排序