簡體   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