我构造了一个条件,从我的数据帧中提取一行:
d2 = df[(df['l_ext']==l_ext) & (df['item']==item) & (df['wn']==wn) & (df['wd']==1)]
现在我想从一个特定的列中取一个值:
val = d2['col_name']
但结果是,我得到的数据帧只包含一行和一列(即一个单元格)。这不是我需要的。我需要一个值(一个浮点数)。在熊猫身上怎么做呢?
我构造了一个条件,从我的数据帧中提取一行:
d2 = df[(df['l_ext']==l_ext) & (df['item']==item) & (df['wn']==wn) & (df['wd']==1)]
现在我想从一个特定的列中取一个值:
val = d2['col_name']
但结果是,我得到的数据帧只包含一行和一列(即一个单元格)。这不是我需要的。我需要一个值(一个浮点数)。在熊猫身上怎么做呢?
当前回答
这些是标量的快速访问方法:
In [15]: df = pandas.DataFrame(numpy.random.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
其他回答
我不确定这是否是一个好的实践,但我注意到我也可以通过将该系列转换为float来获得值。
例如,
rate
3 0.042679
名称:Unemployment_rate, dtype: float64
float(rate)
0.0426789
你可以把你的1x1数据帧转换成一个NumPy数组,然后访问该数组的第一个也是唯一的值:
val = d2['col_name'].values[0]
我所找到的最快和最简单的方法如下。501表示行索引。
df.at[501, 'column_name']
df.get_value(501, 'column_name')
我需要一个单元格的值,按列名和索引名选择。 这个解决方案对我很有效:
original_conversion_frequency.loc [1:] . values [0]
将它转换为整数对我有用:
int(sub_df.iloc[0])