Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the simply-static domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /var/www/html/wp-includes/functions.php on line 6121
pandas环比和同比分析

pandas环比和同比分析

import pandas as pd
import random

date_M = list(pd.date_range('1/1/2019', periods=24, freq='M')) #生成日期
mony = [random.randint(18000,20000) for i in range(0,24)] #随机生成销售额
data = pd.DataFrame({'date_M':date_M,'mony':mony}) #构建一个dataframe
data['huanbi_03'] = data.mony.pct_change()
data.fillna(0,inplace=True) #Null值填充
print(data)
第一步:生成测试数据

#生成测试数据
import pandas as pd
import random

date_M = list(pd.date_range('1/1/2019', periods=24, freq='M')) #生成日期
mony = [random.randint(18000,20000) for i in range(0,24)] #随机生成销售额
data = pd.DataFrame({'date_M':date_M,'mony':mony}) #构建一个dataframe
第二步:计算环比增长

这里有三个方法,我们逐一介绍。

----------------------------------------------------------
#方法1
----------------------------------------------------------
'''
 #升序排列-按照日期
data.sort_values(by=['date_M'],inplace=True)

 #新增列 -'huanbi' 环比的意思
data['huanbi_01']=0

#计算环比列数值
for i in range(0,len(data)):
    if i == 0:
        data['huanbi_01'][i] = 'null'
    else:
        data['huanbi_01'][i] = format((data['mony'][i] - data['mony'][i-1])/data['mony'][i-1],'.2%')
        #format(res,'.2%') 小数格式化为百分数
'''
----------------------------------------------------------
#方法2:
使用diff(periods=1, axis=0)) 一阶差分函数
periods:移动的幅度 默认值为1
axis:移动的方向,{0 or ‘index’, 1 or ‘columns’},如果为0或者’index’,则上下移动,如果为1或者’columns’,则左右移动。默认列向移动
----------------------------------------------------------
'''
data['huanbi_02'] = data['mony']/(data['mony']-data['mony'].diff())-1

data.fillna(0,inplace=True) #Null值填充

'''
----------------------------------------------------------
#方法3:
使用pct_change()
----------------------------------------------------------
'''
data['huanbi_03'] = data.mony.pct_change()

data.fillna(0,inplace=True) #Null值填充