python - 仅显示 df pandas 中的特定组
问题描述
你好,我需要关注表格中的特定组。
这是一个例子:
groups col1
A 3
A 4
A 2
A 1
B 3
B 3
B 4
C 2
D 4
D 3
我只想显示包含 3 和 4 但没有其他数字的组。在这里我应该得到:
groups col1
B 3
B 3
B 4
D 4
D 3
解决方案
这里有两种可能的方法 - 通过成员资格测试值,然后通过和Series.isin
获取所有组,最后过滤:True
GroupBy.transform
GroupBy.all
boolean indexing
df1 = df[df['col1'].isin([3,4]).groupby(df['groups']).transform('all')]
print (df1)
groups col1
4 B 3
5 B 3
6 B 4
8 D 4
9 D 3
另一种方法是首先获取所有组值,其中NOT
包含值并使用反转掩码3,4
传递给另一个函数:isin
df1 = df[~df['groups'].isin(df.loc[~df['col1'].isin([3,4]), 'groups'])]
print (df1)
groups col1
4 B 3
5 B 3
6 B 4
8 D 4
9 D 3
推荐阅读
- java - 正则表达式模式以查找模式的出现
- python - Vscode 中的 Python 调试 - 使其类似于 PyCharm?
- azure-devops - Azure DevOps 管道触发问题消息不会消失
- javascript - 如何使用javascript删除具有特定类的li中的重复ID?
- r - 如果使用预期比例而不是 R 中的计数,则卡方结果不相等
- vue.js - 努力访问vuex的状态
- android - 使用 ViewModel 和 LiveData 多次改造执行 API
- c++ - 从用户的输入创建一个链表程序
- python-3.x - 直接将输出文件下载到客户端桌面
- r - R中数字纬度和经度值的XPath?