如何从数据帧的单元格中获取值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我已经构造了一个条件,从数据帧中提取准确的一行:

d2 = df[(df['l_ext']==l_ext) & (df['item']==item) & (df['wn']==wn) & (df['wd']==1)]

现在,我想从一个特定的专栏中获得一个值:

val = d2['col_name']

但结果是,我得到了一个包含一行和一列的数据框架。这不是我需要的。我需要一个值(一个浮点数)。我怎样才能做到呢?

提问于
用户回答回答于

如果只有一行的DataFrame,则使用iloc,然后使用列名的值:

In [3]: sub_df
Out[3]:
          A         B
2 -0.133653 -0.030854

In [4]: sub_df.iloc[0]
Out[4]:
A   -0.133653
B   -0.030854
Name: 2, dtype: float64

In [5]: sub_df.iloc[0]['A']
Out[5]: -0.13365288513107493
用户回答回答于

这些是标量的快速访问。

In [15]: df = DataFrame(randn(5,3),columns=list('ABC'))

In [16]: df
Out[16]: 
          A         B         C
0 -0.074172 -0.090626  0.038272
1 -0.128545  0.762088 -0.714816
2  0.201498 -0.734963  0.558397
3  1.563307 -1.186415  0.848246
4  0.205171  0.962514  0.037709

In [17]: df.iat[0,0]
Out[17]: -0.074171888537611502

In [18]: df.at[0,'A']
Out[18]: -0.074171888537611502

扫码关注云+社区