计算百分比变化的正确公式是什么?

2024-04-20 11:55:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个数据分析模型,我想知道2019年某个月与2018年同一个月的变化是什么。你知道吗

例如:
2019年6月:358.269
2018年6月:423.149

我想知道在这种情况下,下面两个公式中哪一个是正确的,以便我获得百分比变化:

公式1:

(358.269 / 423.149 - 1 ) * 100 = -15.33%

公式2:

((358.269 - 423.149) / 358.269) * 100 = -18.10%

我用熊猫做分析

df['variation'] = ((df['2019'] / df['2018'] - 1) * 100 ).round(2)
df['variation'] = ((df['2019'] - df['2018']) / df['2019']) * 100).round(2)

我想知道这两个公式中哪一个是正确的,或者如果有另一个公式,我想知道在我的代码中要更正什么。你知道吗


Tags: 代码模型df情况公式百分比roundvariation
2条回答

正如你的问题所暗示的,两个数字之间的百分比变化取决于你从哪个数字开始作为基线。这通常是通过上下文来表达的。你知道吗

类似于“上个月股票上涨了18%”的意思是,18%的起始金额加在了:(end - start) / start = 0.18。你知道吗

另一方面,像“这部手机去年贵了30%”这样的说法正好相反:(start - end) / end = 0.3。你知道吗

对于您的特殊情况,请决定哪个月提供参考。”2019年的某个月与2018年的同一个月相比“听起来好像你想知道2019年的价值相对于2018年的价值有多大/少,所以你会使用(value_2019 - value_2018) / value_2018。你知道吗

将2019年的价值放在分母中可以告诉你,2018年与2019年的关系要少得多。一般来说,我们将基线设置为按时间顺序排列的第一个基准,因此您很少看到这种相反的表述。你知道吗

任何一个公式都可以重写以去掉分母:value_2019 / value_2018 - 11 - value_2018 / value_2019。你知道吗

TL;DR

使用(value_2019 - value_2018) / value_2018或等效的value_2019 / value_2018 - 1。你知道吗

年复一年的变化或变化正如你所说有这两个公式

我喜欢第一个

year_over_year_change = ((this_year - last_year) /(last_year))*100
df['variation'] = ((df['2019']- df['2018'])/df['2018'])*100

第二种解决方案

year_over_year_change ((this_year /last_year) -1)*100
df['variation'] = ((df['2019']/df['2018'])-1)*100

相关问题 更多 >