我有如下所示的数据框.我需要获取B列的标量值,这取决于A的值(这是我脚本中的变量).我正在尝试loc()函数,但它返回一个Series而不是标量值.如何获得标量值()?
>>> x = pd.DataFrame({'A' : [0,1,2], 'B' : [4,5,6]})
>>> x
A B
0 0 4
1 1 5
2 2 6
>>> x.loc[x['A'] == 2]['B']
2 6
Name: B, dtype: int64
>>> type(x.loc[x['A'] == 2]['B'])
<class 'pandas.core.series.Series'>
Run Code Online (Sandbox Code Playgroud)
Noa*_*oah 29
首先,您最好从以下位置访问行索引和列索引.loc:
x.loc[x['A'] == 2, 'B']
Run Code Online (Sandbox Code Playgroud)
其次,您可以始终使用.values系列或数据框来获取基础numpy矩阵:
In : x.loc[x['A'] == 2, 'B'].values[0]
Out: 6
Run Code Online (Sandbox Code Playgroud)
更新如果您对原始问题的"条件索引"不感兴趣,还有一个特定的函数用于从DataFrame获取单个标量值:dataframe.at[index, column]
| 归档时间: |
|
| 查看次数: |
24205 次 |
| 最近记录: |