我试图按包含任意两个特定值的行对 Pandas 数据帧进行排序。在下面的示例数据中,我想选择具有“apple”和“grape”的值的行。
导致过滤后的数据帧呈现:
使用以下代码,我可以选择所有具有特定值的行:
预期的结果已返回:
使用以下代码行,我原本期望选择包含这两个值的行,但是实际返回了所有包含apple或grape作为列值的行:
a b c
0 apple orange grape
1 grape apple banana
2 pear kiwi apple
导致过滤后的数据帧呈现:
a b c
0 apple orange grape
1 grape apple banana
使用以下代码,我可以选择所有具有特定值的行:
df[(df == 'orange').any(axis=1)]
预期的结果已返回:
a b c
0 apple orange grape
使用以下代码行,我原本期望选择包含这两个值的行,但是实际返回了所有包含apple或grape作为列值的行:
df[np.isin(df, ['apple', 'grape']).any(axis=1)]
我原本希望通过先前的代码仅获取拥有苹果和葡萄的行,但显然这并不是正确的实现方式。如何选择只拥有任意一列中同时含有两个值的行?