сравнить столбцы в сводной таблице и добавить результат - PullRequest
0 голосов
/ 24 августа 2018

Я использую открытые данные CSV о населении в Сенегале, приходящемся на http://senegal.opendataforafrica.org/SNVS2015/vital-statistics-of-senegal-2015.Импортировано это с пандами в массив данных (форма 17568,7).

    region  regional-division   sex indicator                               Unit    Date    Value
0   Dakar   Total   Total       Populations (projection de 2008 à   2015)   Number  2008    2482294.0 
1   Dakar   Total   Total       Populations    (projection de 2008 à 2015)  Number  2009    2536959.0
2   Dakar   Total   Total       Populations (projection de 2008 à   2015)   Number  2010    2592191.0 
3   Dakar   Total   Total       Populations   (projection de 2008 à 2015)   Number  2011    2647751.0
4   Dakar   Total   Total       Populations (projection de 2008 à   2015)   Number  2012    2703203.0 
5   Dakar   Total   Total       Populations   (projection de 2008 à 2015)   Number  2013    2776787.0
6   Dakar   Total   Total       Populations (projection de 2008 à   2015)   Number  2014    2851556.0 
7   Dakar   Total   Total       Populations   (projection de 2008 à 2015)   Number  2015    2927422.0
8   Dakar   Total   Men         Populations (projection de 2008 à   2015)   Number  2008    1242463.0 
9   Dakar   Total   Men         Populations (projection   de 2008 à 2015)   Number  2009    1269764.0

Затем сделал

total_population_condition = (population['sex'] == 'Total') & (population['regional-division'] == 'Total')
total_population = population[total_population_condition]

И вдобавок к этому

pivot_total_population = pd.pivot_table(total_population,values='Value',index=['region','sex'],columns='Date')

Сводная таблица

А теперьвопрос: я хочу найти 5 регионов с самым высоким ростом населения в период между 2008 и 2015 годами. И 5 регионов с наибольшей усадкой.Я пытался получить доступ к столбцу сводки со значениями «2008» и «2015», а затем делил последние на первые.И затем добавление результата в кадр данных.Не удалось.Как мне это сделать?

Обновление: я только что понял, как ...

# compute growth first per region
pivot_total_population['growth'] = 
pivot_total_population.iloc[:,7]/pivot_total_population.iloc[:,0]

# then determine which are top 10 growing regions in terms of total population
pivot_total_population.sort_values(['growth'],ascending=False).head(10)

# then determine which are top 10 shrinking regions in terms of total population
pivot_total_population.sort_values(['growth'],ascending=True).head(10)

1 Ответ

0 голосов
/ 28 августа 2018

разобрался с ответом (спасибо gboffi за подсказку процессу новичку; -))

# compute growth first per region
pivot_total_population['growth'] = 
pivot_total_population.iloc[:,7]/pivot_total_population.iloc[:,0]

# then determine which are top 10 growing regions in terms of total population
pivot_total_population.sort_values(['growth'],ascending=False).head(10)

# then determine which are top 10 shrinking regions in terms of total population
pivot_total_population.sort_values(['growth'],ascending=True).head(10)
...