Pandas:过滤和选择一个值
Pandas:过滤和选择一个值
我已经构建了一个条件,可以从我的数据帧中精确提取一行:
d2 = df[(df['l_ext']==l_ext) & (df['item']==item) & (df['wn']==wn) & (df['wd']==1)]
现在我想从特定的列中取一个值:
val = d2['col_name']
但是结果是一个包含一个行和一个列(即,一个单元格)的数据帧。这不是我需要的。我需要一个值(一个浮点数)。在pandas中怎么做?
admin 更改状态以发布 2023年5月25日
这些是标量的快速访问方法:
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
如果您有一个只有一行的DataFrame,则可以使用iloc将其访问为Series的第一行(唯一)行,然后使用列名访问该值:
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