Python 轴1上带有布尔数组的loc()方法
我正在试验PandasPython 轴1上带有布尔数组的loc()方法,python,arrays,pandas,boolean,loc,Python,Arrays,Pandas,Boolean,Loc,我正在试验Pandasloc()方法,该方法使用布尔数组作为参数 我创建了一个小数据框来使用: col1 col2 col3 col4 0 a 1 2 3 1 b NaN NaN 6 2 c NaN 8 9 3 d NaN 11 12 4 e 13 14 15 5 f
loc()
方法,该方法使用布尔数组作为参数
我创建了一个小数据框来使用:
col1 col2 col3 col4
0 a 1 2 3
1 b NaN NaN 6
2 c NaN 8 9
3 d NaN 11 12
4 e 13 14 15
5 f 17 18 19
6 g 21 2 2 23
以及一个布尔数组,用于在轴1上子集多个列:
a1 = pd.Series([True, False, True, False])
然后我试着:
df.loc[: , a1]
我收到一条错误消息:
IndexingError:提供了不可对齐的布尔系列键
如何将布尔数组应用于带有
loc()
的多个列的子集?您需要通过以下方式将系列
转换为numpy数组
:
或者需要通过df.columns
添加索引
,以便将系列的索引
对齐到数据框的列
:
a1 = pd.Series([True, False, True, False], index=df.columns)
print (df.loc[: , a1])
col1 col3
0 a 2.0
1 b NaN
2 c 8.0
3 d 11.0
4 e 14.0
5 f 18.0
6 g 2.0
a1 = pd.Series([True, False, True, False], index=df.columns)
print (df.loc[: , a1])
col1 col3
0 a 2.0
1 b NaN
2 c 8.0
3 d 11.0
4 e 14.0
5 f 18.0
6 g 2.0