作为索引器提供的不可对齐的布尔系列
Unalignable boolean Series provided as indexer
我正在尝试将数据框过滤为:
a= a[~(b['var1'].isin(c['var2']))]
但出现以下错误:
"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).
我理解声明:
print(~(b['var1'].isin(c['var2'])) [:10])
正在返回一个布尔掩码系列,这可能是不可接受的。所以,我尝试将 loc 用作:
a= a.loc[:, ~(b['var1'].isin(c['var2']))]
但我遇到了同样的错误。我在这里错过了什么?如有任何意见,我们将不胜感激。
谢谢
错误意味着 a
和使用 isin
创建的掩码的索引不同,这意味着 b
.
的索引不同
mask = ~(b['var1'].isin(c['var2']))
所以可能的解决方案是通过 a.index
更改索引,对于不匹配的值添加 False
s:
a[mask.reindex(a.index, fill_value=False)]
或者:
a[~(b['var1'].reindex(a.index, fill_value=False).isin(c['var2']))]
我正在尝试将数据框过滤为:
a= a[~(b['var1'].isin(c['var2']))]
但出现以下错误:
"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).
我理解声明:
print(~(b['var1'].isin(c['var2'])) [:10])
正在返回一个布尔掩码系列,这可能是不可接受的。所以,我尝试将 loc 用作:
a= a.loc[:, ~(b['var1'].isin(c['var2']))]
但我遇到了同样的错误。我在这里错过了什么?如有任何意见,我们将不胜感激。
谢谢
错误意味着 a
和使用 isin
创建的掩码的索引不同,这意味着 b
.
mask = ~(b['var1'].isin(c['var2']))
所以可能的解决方案是通过 a.index
更改索引,对于不匹配的值添加 False
s:
a[mask.reindex(a.index, fill_value=False)]
或者:
a[~(b['var1'].reindex(a.index, fill_value=False).isin(c['var2']))]