pandas系列布尔值为True的输出

时间:2018-01-23 11:34:49

标签: python pandas series

我有一个像这样创建的系列

s = pd.Series({'a': False, 'b': True, 'c': False, 'd': True, 'e': False})

>> s
a    False
b     True
c    False
d     True
e    False
dtype: bool

有没有办法整齐地提取它的真实名称,保留在Pandas或NumPy中而不回到普通的Python?

目前我正在使用它:

sdict = s.to_dict()
for item in list(sdict):
    if sdict[item] == True:
        print (item, end=" ")

>> b d

1 个答案:

答案 0 :(得分:2)

boolean indexings.index

一起使用
print (s.index[s])
Index(['b', 'd'], dtype='object')

print (s.index[s].tolist())
['b', 'd']

print (', '.join(s.index[s]))
b, d

带有np.where的有点过于复杂的解决方案,为了好玩:

print (s.index[np.where(s)[0]])
Index(['b', 'd'], dtype='object')