如何在索引器中获取真实条目的整数位置

2024-05-21 07:35:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我想获得pandas系列中行的整数位置,其中系列包含特定值,或者布尔索引器中的位置,其中值为True

如果我有以下数据帧,我希望获得列labelTrue值的整数位置:

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)

我当然可以像下面这样做,但这对我来说似乎有点尴尬,我想知道是否有更干净的方法来做到这一点(特别是在没有重置索引的情况下,但无论原始数据帧中使用了什么索引标签,解决方案都应该有效):

ser= df2['label']
new_ser= ser.reset_index(drop=True)
new_ser.index[new_ser].to_list()

结果当然是[2, 4]


Tags: 数据importfalsetruepandasnewdataindex
1条回答
网友
1楼 · 发布于 2024-05-21 07:35:49

您可以使用:

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]

相关问题 更多 >