根据 Pandas 中的另一列提取列值

新手上路,请多包涵

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

 A  B
p1 1
p1 2
p3 3
p2 4

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

原文由 Gejun 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 853
2 个回答

您可以使用 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'

原文由 Anton Protopopov 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

原文由 PhilChang 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题