我正在创建一个数据分析模型,我想知道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)
我想知道两个公式中的哪个是正确的,或者如果还有另一个公式,我想知道在我的代码中要更正的内容。
答案 0 :(得分:0)
您说具有这两个公式的逐年变化或变化
我喜欢第一个
// Save block structure for ÅR
var blockContent=[];
$("#myForm").find('.blockContent').each(function(i,item){
blockContent.push($(item).data('blockcontent'));
});
$.ajax({
url:"/ajax/saveBlockStructure",
method:"POST",
async:true,
data: {
id: "{{ $id }}",
_token: "{{ csrf_token() }}",
blockStructure: JSON.stringify(blockContent)
}
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
答案 1 :(得分:0)
正如您的问题所暗示的,两个数字之间的百分比差异取决于您以哪个数字作为基线。通常通过上下文来表示。
诸如“上个月股票上涨18%”之类的意思是在(end - start) / start = 0.18
上添加了起始金额的18%。
另一方面,诸如“去年这部手机的价格贵了30%”之类的说法相反:(start - end) / end = 0.3
。
对于您的特定情况,请确定哪个月份提供参考。 “ 2019年的给定月份与2018年的同一个月” 声音,您想知道2019年的价值相对于2018年的价值是多少/多少,因此您可以使用{{1} }。
在分母中使用2019年的值可以告诉您2018年相对于2019年而言要少得多。通常,我们按时间顺序将基线设置为第一个数据,因此您很少看到这种相反的表述。
可以重写这两个公式以排除分母:(value_2019 - value_2018) / value_2018
或value_2019 / value_2018 - 1
。
TL; DR
使用1 - value_2018 / value_2019
或等效的(value_2019 - value_2018) / value_2018
。