簡體   English   中英

如何計算兩個值之間的百分比變化?

[英]how to calculate percentage variation between two values?

我有這個 dataframe 和每年的總人口數。

import pandas as pd
cases_df = pd.DataFrame(data=cases_list, columns=['Year', 'Population', 'Nation'])
cases_df.head(7)



 Year       Population       Nation
0   2019    328239523   United States
1   2018    327167439   United States
2   2017    325719178   United States
3   2016    323127515   United States
4   2015    321418821   United States
5   2014    318857056   United States
6   2013    316128839   United States

我想通過計算兩個值(2013 年和 2019 年)之間的百分比變化來計算從 2013 年到 2019 年人口增加了多少:

{[(328239523 - 316128839)/ 316128839] x 100 }

我怎樣才能做到這一點? 非常感謝你!!

附言。 刪除索引的一些建議? 0 1 2 3 4 5 6

我試過了

df1 = df.groupby(level='Population').pct_change() 
print(df1)

但我得到錯誤,因為“人口”說那不是索引的名稱

我會按照以下方式進行

import pandas as pd
df = pd.DataFrame({"year":[2015,2014,2013],"population":[321418821,318857056,316128839],"nation":["United States","United States","United States"]})
df = df.set_index("year")
df["percentage"] = df["population"] * 100 / df["population"][2013]
print(df)

output

      population         nation  percentage
year
2015   321418821  United States  101.673363
2014   318857056  United States  100.863008
2013   316128839  United States  100.000000

請注意,為簡潔起見,我使用了數據子集。 使用年份作為索引可以輕松獲取 2013 年的人口值,百分比計算為(人口)* 100 /(2013 年人口)。

如何刪除提到的索引:

df.set_index('Year',inplace=True)

現在 Year 將替換您的編號索引。

現在

使用cases_df.describe()cases_df.attribute_name.describe()

這更像是一個數學問題而不是編程問題。

我們將其稱為兩個值之間的百分比差異,因為人口可以雙向變化(隨時間增加或減少)。

現在,假設 2013 年我們有316128839人,2019 年我們有328239523人:

a = 316128839
b = 328239523

在我們 go 計算百分比之前,我們需要找出ba之間的差異:

diff = b - a

現在我們有了,我們需要看看adiff百分比是多少:

perc = (diff / a) * 100

還有你在ab之間的百分比變化

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM