首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于行索引、列引用的数据返回值

基于行索引、列引用的数据返回值
EN

Stack Overflow用户
提问于 2016-05-23 23:27:12
回答 1查看 2K关注 0票数 3

我的目标是将“年份”一栏中的每个值与适当的年份(即1999年、2000年)进行比较。然后,我想从相应的列返回相应的值。例如,对于阿富汗(第一行),即2004年,我希望找到名为" 2004“的列,并从包含阿富汗的行返回值。

这是桌子。为供参考,本表是1999-2010年单个规定年份的教育程度与每个国家的国内生产总值之间的sql联接的结果。我的最终目标是从教育数据的年份返回gdp。

代码语言:javascript
复制
country year    men_ed_yrs  women_ed_yrs    total_ed_yrs    1999    2000    2001    2002    2003    2004    2005    2006    2007    2008    2009    2010
0   Afghanistan 2004    11  5   8   NaN NaN 2461666315  4128818042  4583648922  5285461999  6.275076e+09    7.057598e+09    9.843842e+09    1.019053e+10    1.248694e+10    1.593680e+10
1   Albania 2004    11  11  11  3414760915  3632043908  4060758804  4435078648  5746945913  7314865176  8.158549e+09    8.992642e+09    1.070101e+10    1.288135e+10    1.204421e+10    1.192695e+10
2   Algeria 2005    13  13  13  48640611686 54790060513 54744714110 56760288396 67863829705 85324998959 1.030000e+11    1.170000e+11    1.350000e+11    1.710000e+11    1.370000e+11    1.610000e+11
3   Andorra 2008    11  12  11  1239840270  1401694156  1484004617  1717563533  2373836214  2916913449  3.248135e+09    3.536452e+09    4.010785e+09    4.001349e+09    3.649863e+09    3.346317e+09
4   Anguilla    2008    11  11  11  NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

到目前为止,我的做法是:

代码语言:javascript
复制
for value in df_combined_column_named['year']: #loops through each year in year column
    if value in df_combined_column_named.columns

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-23 23:45:03

使用df.loc

代码语言:javascript
复制
In [62]: df.loc[df['country']=='Afghanistan', '2004'].item()
Out[62]: 5285461999.0

df.loc[rows, columns]可以接受用于rows的布尔序列(如df['country']=='Afghanistan')和用于columns的列标签(如'2004')。它将返回布尔序列为True的行和指定列中的值。

通常,这可以是多个值,因此返回一个Series。但是,在这种情况下,“系列”中只有一个值。因此,要获得值,请调用 method

注意,从df的已发布字符串表示形式来看,数字列标签是否为字符串是整数。如果数字列标签是整数,则需要使用

代码语言:javascript
复制
df.loc[df['country']=='Afghanistan', 2004].item()

(2004周围没有引号)。

如果要对此表单进行大量“查询”,则希望将country列设置为索引:

代码语言:javascript
复制
df = df.set_index('country')

然后可以使用'Afghanistan'访问行标签为'2004'的单元格中的值,并使用get_value访问其列标签为'2004'的单元格中的值。

代码语言:javascript
复制
In [65]: df.get_value('Afghanistan', '2004')
Out[65]: 5285461999.0
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37402093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档