![](/img/trans.png)
[英]Finding the index of rows based on a sequence of values in a column of pandas DataFrame
[英]Pandas Finding Index From Values In Column
在大數據集上使用 Python Pandas 時,如何根據列中的值在同一行中找到索引?
例如,如果我有這個數據集......
Column
Item 1 0
Item 2 20
Item 3 34
...
Item 1000 12
...如果我在列中的 1000 行(不包括第 0 行)之一中有這個值 17,並且我想找出哪個 Item 在同一行的列中具有這個值 17,怎么能我這樣做?
例如,我想找出這個 Item x 在數據集中索引的內容和位置,如下所示......
Column
Item x 17
...我如何用 Pandas 做到這一點,使用這個值 17 作為參考?
使用boolean indexing
:
df.index[df.Column == 17]
如果需要排除第 0 行:
df1 = df.iloc[1:]
df1.index[df1.Column == 17]
樣品:
df = pd.DataFrame({'Column': {'Item 1': 0, 'Item 2': 20, 'Item 5': 12, 'Item 3': 34, 'Item 7': 17}})
print (df)
Column
Item 1 0
Item 2 20
Item 3 34
Item 5 12
Item 7 17
print (df.index[df.Column == 17])
Index(['Item 7'], dtype='object')
print (df.index[df.Column == 17].tolist())
['Item 7']
df1 = df.iloc[1:]
print (df1)
Column
Item 2 20
Item 3 34
Item 5 12
Item 7 17
print (df1.index[df1.Column == 17].tolist())
['Item 7']
我嘗試了上述方法之一,但對我不起作用。 然后我對它進行了更多的思考,並意識到我讓它變得比需要的更復雜。 這是我在自己的程序中使用的方法來獲得此功能:
x = 17
df = pandas.DataFrame({'Item':[1,2,3,150],'Column':[0,20,34,17]})
response = df[df['Column'] == x].iloc[0]['Item']
print(response)
輸出:
150
使用query
df.query('Column == 17')
使用index.tolist()
獲取項目列表
df.query('Column == 17').index.tolist()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.