如何从python pandas数据框中提取特定值?

时间:2016-01-25 21:40:22

标签: python pandas

我是大熊猫的新手,并且有一个关于Python Panda包的快速而愚蠢的问题:如何从数据框中提取特定值?

数据框的结构如下:

           id           ba_ntr
0           1            PRF
1           2            PUF
.....
3898     3444       PRF

然后我使用以下代码来提取特定值:

list(df[df['id'] == 25]['ba_ntr']) == ['PUF']

在上面的代码中,我试图:

  1. 找到列id的值为25的行。所有 id中的值是唯一的但不是连续的 - 其中一个原因 我没有使用索引。
  2. 由于id中的所有值都是唯一的,df[df['id'] == 25]应该是ba_ntr 返回一行,然后我需要知道列df[df['id'] == 25]['ba_ntr']的值 在那条线上。
  3. 因为list()将返回一个熊猫系列,我 使用['PUF']将系列转换为列表,并与另一个进行比较 列出{{1}}。
  4. 我认为将系列转换为列表是不必要的 耗时 - 我有500万行记录要迭代......
  5. 非常感谢您节省我的时间和生命!

1 个答案:

答案 0 :(得分:0)

如果您的id列确实是唯一的,为什么不将它用作索引? (不要求索引是连续的)

df.set_index('id', drop=True, inplace=True)
# or, if you don't want to mangle the existing data frame
# df_reindexed = df.set_index('id', drop=True)
is_puf = df.loc[25, 'ba_ntr'] == 'PUF'