我有点困在提取一个变量的值的条件下,另一个变量。例如,下面的数据帧:
A B
p1 1
p1 2
p3 3
p2 4
当B=3时,我如何得到A的值?每次当我提取A的值时,我得到的是一个对象,而不是字符串。
我有点困在提取一个变量的值的条件下,另一个变量。例如,下面的数据帧:
A B
p1 1
p1 2
p3 3
p2 4
当B=3时,我如何得到A的值?每次当我提取A的值时,我得到的是一个对象,而不是字符串。
当前回答
你可以试试query,这样打字就少了:
df.query('B==3')['A']
其他回答
你可以使用squeeze代替iloc[0]。如果你只有一个值,它看起来更清晰:
df.loc[df['B'] == 3, 'A'].squeeze()
输出:
'p3'
Try:
df[df['B']==3]['A'].item()
假设df是你的pandas.DataFrame。
你可以用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'
df.loc[df['B']=='give-specific-value', 'A']````
I have also worked on this clausing and extraction operations for my assignment.
你可以试试query,这样打字就少了:
df.query('B==3')['A']