Pandas:根据另一列

时间:2016-01-23 13:06:36

标签: python pandas

无法理解Pandas的语法。以下是一些示例数据:

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    

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

假设您的数据框名为df_name,您可以:

line_selector = df_name.id == 13555
df_name.loc[line_selector, ['one', 'two', 'id']]