如何从数据帧的单元格中获取值?
问题描述:
我构建了一个条件,可以从我的数据框中精确提取一行:
I have constructed a condition that extract exactly one row from my data frame:
d2 = df[(df['l_ext']==l_ext) & (df['item']==item) & (df['wn']==wn) & (df['wd']==1)]
现在我想从特定列中获取一个值:
Now I would like to take a value from a particular column:
val = d2['col_name']
但结果我得到一个包含一行和一列的数据框(即一个单元格).这不是我需要的.我需要一个值(一个浮点数).我怎样才能在熊猫中做到这一点?
But as a result I get a data frame that contains one row and one column (i.e. one cell). It is not what I need. I need one value (one float number). How can I do it in pandas?
答
如果您的 DataFrame 只有一行,则使用 iloc
作为系列访问第一(唯一)行,然后使用列名的值:
If you have a DataFrame with only one row, then access the first (only) row as a Series using iloc
, and then the value using the column name:
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