基于另一列pandas dataframe提取列值

问题描述 投票:59回答:4

我有点卡在另一个变量上提取一个变量条件的值。例如,以下数据帧:

A  B
p1 1
p1 2
p3 3
p2 4

A时,如何获得B=3的值?每次当我提取A的值时,我得到一个对象,而不是字符串。

python pandas dataframe
4个回答
103
投票

您可以使用loc来获得满足您条件的系列,然后使用iloc来获得第一个元素:

In [2]: df
Out[2]:
    A  B
0  p1  1
1  p1  2
2  p3  3
3  p2  4

In [3]: df.loc[df['B'] == 3, 'A']
Out[3]:
2    p3
Name: A, dtype: object

In [4]: df.loc[df['B'] == 3, 'A'].iloc[0]
Out[4]: 'p3'

21
投票

df[df['B']==3]['A'],假设df是你的pandas.DataFrame。


19
投票

您可以尝试query,这是更少的输入:

df.query('B==3')['A']

0
投票

如果您只想要没有括号的项目,请使用df[df['B']==3]['A'].values

© www.soinside.com 2019 - 2024. All rights reserved.