Вернуть первое числовое значение в столбце - PullRequest
0 голосов
/ 16 ноября 2018

Примерно так выглядит мой фрейм данных (проиндексированный year и countries.)

                   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

Я хочу предложить функцию, которая идентифицирует первое не NaN значение в столбце gini и возвращает значения year и efw, которые соответствуют значению в столбце gini.

Например, если первое не Nan для Argentina равно 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 году, последнему году, за который имеются данные.

1 Ответ

0 голосов
/ 16 ноября 2018

Используйте это, получите по условию, затем сбросьте индекс, затем сортируйте значения, затем снова мультииндексируйте фрейм данных:

print(df[df['gini'].notnull()].reset_index().sort_values('year').iloc[[0, -1]].set_index(['year','countries']))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...