列列表中的数据框过滤器空值

菲利普

所以,我有一个df这样的

ID,A,B,C,D,E,F,G
1,123,30,3G,1,123,30,3G
2,456,40,4G,NaN,NaN,NaN,4G
3,789,35,5G,NaN,NaN,NaN,NaN

我也有一个列表,其中包含df标头列表的子集,像这样,

header_list = ["D","E","F","G"]

现在,我想从dfheader_list中所有CONTAINS Null值中获取所有记录。

预期产量:

ID,A,B,C,D,E,F,G
3,789,35,5G,NaN,NaN,NaN,NaN

我尝试过,new_df = df[df[header_list].isnull()]但这会抛出error, ValueError: Boolean array expected for the condition, not float64

我知道我可以做这样的事情

new_df = df[(df['D'].isnull()) & (df['E'].isnull()) & (df['F'].isnull()) & (df['G'].isnull())]

但是我不想这样硬编码。那么有没有更好的方法呢?

威廉·范昂塞姆

您可以使用以下方法对此进行过滤:

df[df[header_list].isnull().all(axis=1)]

因此,我们检查一行是否包含其中.all()value为的值.isnull()

对于给定的样本输入,这给出了预期的输出:

>>> df[df[header_list].isnull().all(axis=1)]
     A   B   C   D   E   F    G
3  789  35  5G NaN NaN NaN  NaN

.all(axis=1)[熊猫-DOC]因此,将返回True的行,因为该行的所有列True,和False其他。因此,对于给定的样本输入,我们得到:

>>> df[header_list]
     D      E     F    G
1  1.0  123.0  30.0   3G
2  NaN    NaN   NaN   4G
3  NaN    NaN   NaN  NaN
>>> df[header_list].isnull()
       D      E      F      G
1  False  False  False  False
2   True   True   True  False
3   True   True   True   True
>>> df[header_list].isnull().all(axis=1)
1    False
2    False
3     True
dtype: bool

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用过滤器从scala的数据框中获取包含空值的行集

来自元组列表的数据框列过滤器

Pandas loc - 过滤器值出现在数据框中的列表中

根据过滤器更改数据框列的值

R数据框过滤器值

用于“空”值的列过滤器

Excel VBA:“空”(失败匹配)值的过滤器列表,然后将其复制并粘贴到新列中

基于列表的f#过滤器数据框

data.table过滤器列表列中的空值

查询数据框,但仅将过滤器应用于列值不是NaN的行

下拉列表未显示在primefaces数据表列过滤器框中

如何从Python列表中创建不同的数据框(带有过滤器)

R中带有嵌套数据框的过滤器列表

R数据框按值过滤器

Java Stream 过滤器 - 如何过滤数据而不将过滤器代码包装在“if”条件中以检查过滤键上的空值?

根据另一个数据框中的列值在数据框中找到一行,并对其应用过滤器

基于空列值的Linq过滤器

SQL列值为空,搜索过滤器错误

使用过滤器和正则表达式根据 Pandas 数据框中另一个变量的部分文本替换空值

在过滤器中包含最新的非空列值

对象过滤器不起作用,因为列中的值为空

根据数据框熊猫中的列过滤器获取n行

如何使用PySpark在数据框中删除基于多个过滤器的列?

即使列不在数据框中,Spark 也会向下推过滤器

在数据表中更改列过滤器文本框的宽度

根据不同列python数据框中的空值过滤数据框列中的值

使用 jqgrid 中工具栏过滤器字段中的下拉列表删除列值

列数据过滤器

如何选择过滤器选择列表中的列列表