我有一个DataFrame如下所示,我想提取包含一行的组(名称:J和年龄:33)
| X型|Y轴|姓名|年龄|
| - -----|- -----|- -----|- -----|
| 1| 3| J型|三十三|
| 1| 3|一个|四十七名|
| 1| 4| B|五十三|
| 1| 4| X型|二十二|
| 2| 3| J型|三十三|
| 2| 3|压力|八十|
| 2| 4| V|九十|
| 2| 4| V|九十三|
总的来说,它将产生下表,因为1,3X/Y组包含J,33,并且2,3X/Y组也包含J,33行。
| X型|Y轴|姓名|年龄|
| - -----|- -----|- -----|- -----|
| 1| 3| J型|三十三|
| 1| 3|一个|四十七名|
| 2| 3| J型|三十三|
| 2| 3|压力|八十|
我一直在通过迭代行来实现这一点,这太慢了,我想知道是否有一种更快的方法,即在Pandas中使用groupby和apply/pipe方法。任何帮助都很感激
以下实施例DF:
df = pd.DataFrame({
'X': [1,1,1,1,2,2,2,2],
'Y': [3,3,4,4,3,3,4,4],
'Name': ['J', 'A', 'B', 'X', 'V', 'P', 'J', 'V'],
'Age': [33,47,53,22,33,80,33,93]
})
2条答案
按热度按时间btqmn9zl1#
一个选项是使用groupby:
另一个选项,仍然使用groupby:
jjhzyzn02#
您可以搜索所有包含
Name == J
和Age == 33
的唯一X
和Y
值,然后过滤 Dataframe :图纸:
编辑:更新问题,没有
.groupby
的解决方案:图纸: