繁体   English   中英

如何计算两年之间的百分比变化并在 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_tablesum并添加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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM