我想获得熊猫系列中行的整数位置(该系列包含特定值),或者获取布尔索引器中位置为True的位置。
如果我有以下数据框,我想获取True
column中值的整数位置label
:
import pandas as pd
data=dict()
data["col_0"]=[-0.2518508748588564, -0.6339192005025384, -0.6938892242609978, 2.4470042529183402, 0.8977665869071174]
data["label"]=[False, False, True, False, True]
df2= pd.DataFrame(data)
我当然可以像下面那样做,但是对我来说似乎很尴尬,我想知道是否有更干净的方法可以做到这一点(尤其是没有reset_index的情况,但是无论该解决方案中使用了什么索引标签,该解决方案都应该有效原始数据框):
ser= df2['label']
new_ser= ser.reset_index(drop=True)
new_ser.index[new_ser].to_list()
结果当然是[2, 4]
。
您可以使用:
np.flatnonzero(df2['label'])
data=dict()
data["col_0"]=[-0.2518508748588564, -0.6339192005025384, -0.6938892242609978, 2.4470042529183402, 0.8977665869071174]
data["label"]=[False, False, True, False, True]
df2= pd.DataFrame(data)
np.flatnonzero(df2['label'])
Out[1]: array([2, 4], dtype=int64)
这使其成为一个np.array。要列出,请使用:
[*np.flatnonzero(df2['label'])]
Out[2]: [2, 4]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句