完整报错如下: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]