![](/img/trans.png)
[英]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.