Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫:根据唯一值获取行中对应的列值_Python_Pandas - Fatal编程技术网

Python 熊猫:根据唯一值获取行中对应的列值

Python 熊猫:根据唯一值获取行中对应的列值,python,pandas,Python,Pandas,我已经知道了如何获取我想要的信息,但如果没有更好、更可读的方法,我会感到惊讶 我想在保存我指定的数据元素的行中的另一列中获取值。例如,与a列中11的值相对应的b列中的值是什么 >>> df a b c 0 10 20 30 1 11 21 31 2 12 22 32 >>> df['b'][df[df['a'] == 11].index.tolist()].tolist() [21] 这就是我目前解决这个问题的方法,但实际

我已经知道了如何获取我想要的信息,但如果没有更好、更可读的方法,我会感到惊讶

我想在保存我指定的数据元素的行中的另一列中获取值。例如,与
a
列中
11
的值相对应的
b列中的值是什么

>>> df
    a   b   c
0  10  20  30
1  11  21  31
2  12  22  32

>>> df['b'][df[df['a'] == 11].index.tolist()].tolist()
[21]
这就是我目前解决这个问题的方法,但实际上,我的数据帧并没有这么简洁地命名,而且我有很长的字符串作为列名,所以这行很难阅读


编辑:如果“a”中的值不是唯一的,是否也有方法获取“b”中的所有对应值?

您可以使用布尔掩码和
loc
来返回满足布尔条件的所有行,这里我们使用条件“a”==11来屏蔽df,在满足条件的情况下,返回“b”的所有值:

In [120]:
df = pd.DataFrame({'a':[10,11,11],'b':np.arange(3), 'c':np.random.randn(3)})
df

Out[120]:
    a  b         c
0  10  0 -1.572926
1  11  1 -0.639703
2  11  2 -1.282575

In [121]:
df.loc[df['a'] == 11,'b']

Out[121]:
1    1
2    2
Name: b, dtype: int32

你打错了。在你的第二段,“10”应该是“11”。