簡體   English   中英

熊貓從列中的值中查找索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM