繁体   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