熊猫在条件下找到单一值

时间:2018-01-25 19:46:28

标签: python pandas

我有这个简单的问题但由于某种原因我无法理解。我有这个df:

Name1   Name2  Value1  Value2 
x       z      1       4
y       y      2       5
z       x      3       6

我的目标是拉出Value1或Value2列中与Name1和Name2匹配的单个值。例如,我想得到:

v:Value1中的值,其中Name1 = x,Name2 = z,然后v = 1

w:Value2中的值,其中Name1 = z,Name2 = x,则w = 6

非常感谢!

2 个答案:

答案 0 :(得分:2)

设置索引:

df = df.set_index(['Name1', 'Name2'])

然后使用loc:

df.loc[('x', 'z'), 'Value1']
Out: 1

df.loc[('z', 'x'), 'Value2']
Out: 6

答案 1 :(得分:1)

您可以使用query

df.query("Name1=='x' & Name2=='z'").Value1[0]
Out[792]: 1