熊猫:IndexingError:作为索引器提供的不可对齐的布尔系列

elPastor:

我正在尝试运行我认为是简单的代码以消除所有NaN的任何列,但是无法使其正常工作(axis = 1消除行时效果很好):

import pandas as pd
import numpy as np

df = pd.DataFrame({'a':[1,2,np.nan,np.nan], 'b':[4,np.nan,6,np.nan], 'c':[np.nan, 8,9,np.nan], 'd':[np.nan,np.nan,np.nan,np.nan]})

df = df[df.notnull().any(axis = 0)]

print df

完整错误:

raise IndexingError('Unalignable boolean Series provided as 'pandas.core.indexing.IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match

预期产量:

     a    b    c
0  1.0  4.0  NaN
1  2.0  NaN  8.0
2  NaN  6.0  9.0
3  NaN  NaN  NaN
耶斯雷尔:

您需要loc,因为按列过滤:

print (df.notnull().any(axis = 0))
a     True
b     True
c     True
d    False
dtype: bool

df = df.loc[:, df.notnull().any(axis = 0)]
print (df)

     a    b    c
0  1.0  4.0  NaN
1  2.0  NaN  8.0
2  NaN  6.0  9.0
3  NaN  NaN  NaN

或过滤列,然后选择[]

print (df.columns[df.notnull().any(axis = 0)])
Index(['a', 'b', 'c'], dtype='object')

df = df[df.columns[df.notnull().any(axis = 0)]]
print (df)

     a    b    c
0  1.0  4.0  NaN
1  2.0  NaN  8.0
2  NaN  6.0  9.0
3  NaN  NaN  NaN

dropna使用参数how='all'删除NaNs 填充的所有列

print (df.dropna(axis=1, how='all'))
     a    b    c
0  1.0  4.0  NaN
1  2.0  NaN  8.0
2  NaN  6.0  9.0
3  NaN  NaN  NaN

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫布尔系列不会情节

使用系列索引作为列将熊猫系列转换为数据框

熊猫系列无法获取索引

Python pandas.core.indexing.IndexingError:提供了不可对齐的布尔系列键

python-“布尔系列键将重新索引以匹配DataFrame索引。从ipykernel导入kernelapp作为应用程序”

使用.loc访问器的熊猫日期时间索引的布尔掩码

熊猫多索引系列处理

将列表传递给熊猫系列作为索引

IndexingError:在dropna和过滤后提供了不可对齐的布尔系列键

合并具有不同索引的熊猫系列(在一个索引上对齐)

熊猫重排多索引系列

pandas.core.indexing.IndexingError:索引器过多

集合分析:创建以交集作为索引,值作为计数的熊猫系列

如何在不使用布尔索引的情况下遍历熊猫系列

使用字典作为映射器创建熊猫系列

修复:作为索引器提供的不可对齐的布尔系列尝试在列之间进行乘法运算

提高熊猫布尔索引的速度

如何将2个未对齐的熊猫系列相乘并获得具有多索引的产品系列

带列布尔数组的熊猫布尔索引

熊猫布尔索引中的星号(*)

在布尔熊猫系列中查找true-after-false的索引

熊猫布尔索引问题

熊猫生成器作为索引器

提供不可对齐的布尔系列作为索引器

如何在熊猫中将布尔索引器与多索引结合在一起?

按日期索引对齐多个熊猫系列

IndexingError:作为索引器提供的不可对齐的布尔系列

作为索引器提供的不可对齐的布尔系列(布尔系列的索引和索引对象的索引不匹配)

错误:pandas.core.indexing.IndexingError:索引器过多