[英]Calculate percentage change between values of column in Pandas dataframe
[英]How to calculate percentage change between two years and insert in a new DataFrame in Pandas?
我有一個巨大的 Dataframe,看起來像這樣:
year country population
1971 Afghanistan 11500000
1972 Afghanistan 11800000
1973 Afghanistan 12100000
1974 Afghanistan 12400000
1975 Afghanistan 12700000
我想創建一個新的 DataFrame 來計算人口百分比差異,每十年,按國家分組
country 1971-1980 1981-1990 1991-2000 2001-2010
Afghanistan -- -- -- --
Australia -- -- -- --
需要一些幫助來了解如何做到這一點。 任何幫助,將不勝感激。
您可以創建十年列,然后使用DataFrame.pivot_table
和sum
並添加DataFrame.pct_change
:
d = df['year'] // 10 * 10
df['dec'] = (d + 1).astype(str) + '-' + (d + 10).astype(str)
另一個想法cut
:
bins = range(df['year'].min(), df['year'].max() + 10, 10)
labels = [f'{i}-{j-1}' for i, j in zip(bins[:-1], bins[1:])]
df['dec'] = pd.cut(df.year, bins=bins, labels=labels, include_lowest=True)
df1 = (df.pivot_table(index='country',
columns='dec',
values='population',
aggfunc='sum')
.pct_change(axis=1))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.