这几乎就是我的数据框的样子(按年份
和国家
索引。)
ISO gini efw
year countries
1970 Argentina ARG NaN 5.67
1975 Argentina ARG NaN 3.13
1980 Argentina ARG 40.8 4.25
1985 Argentina ARG NaN 3.53
1990 Argentina ARG NaN 4.47
1970 Bolivia BOL NaN NaN
1975 Bolivia BOL NaN NaN
1980 Bolivia BOL NaN 4.08
1985 Bolivia BOL NaN 3.52
1990 Bolivia BOL 42.0 5.62
2010 Uruguay URY 44.5 7.33
2011 Uruguay URY 42.2 7.39
2012 Uruguay URY 39.9 7.34
2013 Uruguay URY 40.5 7.26
1970 Venezuela VEN NaN 7.18
1975 Venezuela VEN NaN 6.22
1980 Venezuela VEN NaN 6.72
1985 Venezuela VEN NaN 6.08
1990 Venezuela VEN NaN 5.55
1995 Venezuela VEN 47.8 4.35
2000 Venezuela VEN NaN 5.89
我想提出一个函数来识别gini
列中的第一个非NaN
值,并返回年份
和efw
值对应于 gini
列中的值。
例如,如果 Argentina
的第一个非 Nan
是 40.8,我希望函数返回 40.8、该值的年份 (1980) 以及该值对于 efw
也适用于 1980 (4.25)。
理想情况下,新的数据框应如下所示。对于每个国家来说都是如此。
ISO gini efw
year countries
1980 Argentina ARG 40.8 4.25
2016 Argentina ARG 43.60 3.13
最后一行对应 2016 年,即有可用数据的最后一年。
最佳答案
使用它,通过条件获取,然后重置索引,然后对值进行排序,然后再次对数据帧进行多重索引:
print(df[df['gini'].notnull()].reset_index().sort_values('year').iloc[[0, -1]].set_index(['year','countries']))
关于python - 返回列中的第一个数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53331096/