使用元组对多个组合列进行熊猫过滤

时间:2019-06-19 14:29:38

标签: python python-3.x pandas python-2.7

我正在尝试使用覆盖两个值的元组来过滤熊猫数据框...例如:

# tuple contains... example only...
# first element in the tuple corresponds to a code or column in pandas
# second element is another column to filter on in pandas
[('G935', 'Y'), ('G936', 'N'), ('G937', 'N')]

pandas数据框包含列:

Dx01, Dx_POA_01
Dx02, Dx_POA_02
Dx03, Dx_POA_03
Dx04, Dx_POA_04
Dx05, Dx_POA_05
Dx06, Dx_POA_06

这可以持续25-60 ... 我试图在数据框中找到与这些列组合中元组中的匹配对匹配的记录。

我尝试过类似的事情:

# this worked fine
test = df[df[["Dx01", "Dx_POA_01"]].apply(tuple, 1).isin([("G935", "Y"), ("G936","N")])]

但是,当我想扩展到更多列时:

df[df[["Dx01", "Dx_POA_01"],["Dx02", "Dx_POA_02"]].apply(tuple, 1).isin([("G935", "Y"), ("G936","N")])]

这显然行不通...并且出现错误

 "[('Dx01', 'Dx_POA_01') ('Dx02', 'Dx_POA_02')] not in index"

如何使用元组在列组合上搜索熊猫数据框...这将是一个“ OR”子句... 如果["Dx01", "Dx_POA_01"]在元组中包含任何组合 或["Dx02", "Dx_POA_02"]的元组中包含任何组合

等等...

0 个答案:

没有答案