首页 > 解决方案 > 如何从满足条件A或B的pandas DataFrame中选择数据?

问题描述

我看到了很好的帖子,完美地回答了我的标题问题(包括这个),但我处于更具体的情况。

假设我有以下非常简单的 DataFrame

df.head()

   param  accuracy
0    None       98
1    4.0        100
2    5.0        95
3    6.0        87
4    7.0        56
5    8.0        45
6    9.0        59
7    None       96
...

我想将我的 DataFrame 限制为 param 为 None 或 4 的数据。我尝试了以下技术

params = [None, 4]
df = df[df['param'].isin(params)]

它只选择参数为 4 的数据。

这篇文章展示了如何使用isnull()方法过滤 None 值,但它不兼容isin()......因此我的问题。

标签: pythonpandasdataframe

解决方案


正如@IMB 所指出的,一个解决方案是做params = ["None", 4]而不是params = [None, 4].

我的数据框最初包含 NaN,我用df = df.fillna('None'). 因此是字符串类型。


推荐阅读