Python 迭代dataframe中的所有行,并检查列表中的所有列值

Python 迭代dataframe中的所有行,并检查列表中的所有列值,python,pandas,Python,Pandas,我有一个7列~5000行的数据框。我想检查一行中的所有列值是否都在我的列表中,如果是这样,请将它们添加到新的数据框中,或者删除所有值不匹配的列,即删除假行(w/e是最简单的) 我可以想象,可以使用.apply和。可以使用all但恐怕我的python技能受到限制,有什么帮助?如果我正确理解,您可以使用lambda表达式(如: df.loc[df.apply(lambda row: all(value in MyList for value in row), axis=1))] 您可以尝试将数据帧

我有一个7列~5000行的数据框。我想检查一行中的所有列值是否都在我的列表中,如果是这样,请将它们添加到新的数据框中,或者删除所有值不匹配的列,即删除假行(w/e是最简单的)


我可以想象,可以使用
.apply
。可以使用all
但恐怕我的python技能受到限制,有什么帮助?

如果我正确理解,您可以使用lambda表达式(如:

df.loc[df.apply(lambda row: all(value in MyList for value in row), axis=1))]

您可以尝试将数据帧转换为列表df.values.tolist(),然后逐行比较。然后可以使用dfList.remove(“badValue”)删除行。比较之后,将其转换回数据帧。嗨@JeffGruenbaum,对不起,也许我没说清楚。。。我想检查行中的所有列,例如,如果dataframe包含5列,我只想在所有5个值都在MyList中时保留该行;你能提供一个样本行和一个样本MyList吗?@JeffGruenbaum,谢谢你的关注:-)jfaccioni设法为我解决了这个问题。
df.loc[df.apply(lambda row: all(value in MyList for value in row), axis=1))]