解决pandas索引报错Unalignable boolean Series provided as indexer

完整报错如下:pandas.core.indexing.IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).

解决方法

以下是两种索引方式,任选其一即可:

解决方法1

dataframe[pd.Series([True, True, True], index=dataframe.index)]

解决方法2:

dataframe.loc[pd.Series([True, True], index=['a', 'b']).index]

问题解析

如下代码会出现这样的报错:

import pandas as pd
import numpy as np


dataframe = pd.DataFrame(data=np.random.random(size=(3, 5)), index=['a', 'b', 'c'])

报错代码如下:

dataframe[pd.Series([True, True], index=['a', 'b'])]

可以看到原始的dataframe包括3行,但是这里只有两个True,因此报错,正确的方法是:

dataframe[pd.Series([True, True, True], index=['a', 'b', 'c'])]
dataframe.loc[pd.Series([True, True], index=['a', 'b']).index]

猜你喜欢

转载自blog.csdn.net/weixin_35757704/article/details/121791011
今日推荐