2016-01-23 101 views
2

無法讓我的頭圍繞熊貓語法。下面是一些示例數據:熊貓:通過名稱基於另一列中的值子集多個列

one two three id 
12 34 561 13555 
2 67 781 14777 
34 12 90  13555  
5 67 89  14777 

我想回到列一,二,id其中在ID列中的值是13555.要按名稱,而不是位置來選擇列。

輸出應該是這樣的:

one two id 
12 34 13555 
34 12 13555  

回答

3

你可以嘗試locisin

print df.loc[(df.id.isin([13555])), ['one', 'two', 'id']] 

    one two  id 
0 12 34 13555 
2 34 12 13555 

或者:

df = df[['one', 'two', 'id']] 
print df 
    one two  id 
0 12 34 13555 
1 2 67 14777 
2 34 12 13555 
3 5 67 14777 

print df[df.id == 13555] 
    one two  id 
0 12 34 13555 
2 34 12 13555 

print df[['one', 'two', 'id']][df.id == 13555] 
    one two  id 
0 12 34 13555 
2 34 12 13555 

或者使用query

print df[['one', 'two', 'id']].query("id == 13555") 
    one two  id 
0 12 34 13555 
2 34 12 13555 
0

假設你的數據框被命名爲df_name,您可以:

line_selector = df_name.id == 13555 
df_name.loc[line_selector, ['one', 'two', 'id']] 
相關問題