在python中使用loc进行布尔选择

时间:2019-12-09 17:02:48

标签: python pandas

s = pd.Series(np.nan, index=[49,48,47,46,45, 1, 2, 3, 4, 5])

s 的输出是

49   NaN
48   NaN
47   NaN
46   NaN
45   NaN
1    NaN
2    NaN
3    NaN
4    NaN
5    NaN

s.loc[[False,True]]

它给出的输出为-

48   NaN

.loc通过标签访问一组行和列,我给出了false和true的列表,它也不等于被切片的轴的长度。 我的疑问是我们是否给出布尔数组列表以将其定位在具有位置而不是标签的数据帧/系列中?

1 个答案:

答案 0 :(得分:1)

运行此程序时肯定会出错:

import pandas as pd
import numpy as np
s = pd.Series(np.nan, index=[49,48,47,46,45, 1, 2, 3, 4, 5])
s.loc[[False,True]]

错误(符合预期)是:

IndexError: Item wrong length 2 instead of 10.

也许您的问题只针对特定版本的熊猫?也许是旧的?我使用的是熊猫版0.25.3