pandas数据处理与分析

1、使用数据差分查看员工业绩波动情况

对表中的数据切分出姓名、日期和交易额三列数据以姓名和日期进行分组求和后将计算得到的差分作为最后一列输出。

import pandas as pd
#读取超市营业额2.xlsx中的Sheet1的数据
data=pd.read_excel("E:\\Python\\超市营业额2.xlsx","Sheet1")
#从data中通过切片的方式获取数据,并以姓名和日期进行分组求和
data=data.loc[:,['姓名','日期','交易额']].groupby(by=['姓名','日期']).sum()
#求出纵向的差分作为data中的新一列
data['差分']=data.diff(periods=1,axis=0)
print(data)

2、使用透视表和交叉表查看业绩汇总数据

以日期为行索引,姓名为列索引并对交易额求和生成透视表展示每人每天的交易额

以日期为行索引,姓名为列索引并对交易额求和生成交叉表展示每人每天的上班频率

import pandas as pd
#读取超市营业额2.xlsx中的Sheet1的数据
data=pd.read_excel("E:\\Python\\超市营业额2.xlsx","Sheet1",usecols=['姓名','日期','交易额'])
#以日期为行索引、姓名为列索引对交易额进行求和生成透视表
print("透视表如下:")
print(data.pivot_table(index='日期',columns='姓名',aggfunc='sum'))
#以日期为行索引、姓名为列索引生成交叉表
print()
print("交叉表如下:")
print(pd.crosstab(data.日期,data.姓名,margins=True))

3、使用重采样技术按时间段查看员工业绩

每五天进行一次重采样,展示五天的交易额

import pandas as pd
#读取超市营业额2.xlsx中的Sheet1的数据
data=pd.read_excel("E:\\Python\\超市营业额2.xlsx","Sheet1",usecols=['姓名','日期','交易额'])
#从data中通过切片的方式获取数据,并以姓名和日期进行分组求和
data=data.groupby(by=['姓名','日期'],as_index=False).sum()
#将日期字符串转化为日期类型
data['日期']=pd.to_datetime(data.日期)
#每五天进行一次重采样,以最后一天作为时间结果
print("每五天进行一次重采样:")
print(data.resample('5D',label='right',on='日期').sum()['交易额'])

4 、使用标准差与协方差分析员工业绩

使用交叉表求得每人在每个柜台交易额的平均值,在调用函数求每个柜台的标准差和协方差

import pandas as pd
#读取超市营业额2.xlsx中的Sheet1的数据
data=pd.read_excel("E:\\Python\\超市营业额2.xlsx","Sheet1",usecols=['姓名','交易额','柜台'])
#设置列对齐
pd.set_option('display.unicode.ambiguous_as_wide',True)
pd.set_option('display.unicode.east_asian_width',True)
#使用交叉表获得员工在不同柜台的平均交易额
df=pd.crosstab(data.姓名,data.柜台,data.交易额,aggfunc='mean')
#计算标准差
print("标准差为:")
print(df.std())
#计算协方差
print("协方差为:")
d=df.cov()
print(d)

 5、绘制各员工在不同柜台业绩平均值的柱状图

使用交叉表求得每人在每个柜台交易额的平均值,再以姓名为横坐标,交易额为纵坐标画出柱状图

 

import pandas as pd
import matplotlib.pyplot as plt
#设置显示中文
plt.rcParams['font.sans-serif']=['simhei']
#读取超市营业额2.xlsx中的Sheet1的数据
data=pd.read_excel("E:\\Python\\超市营业额2.xlsx","Sheet1",usecols=['姓名','交易额','柜台'])
#使用交叉表生成以姓名为行索引,柜台为列索引的表
df=pd.crosstab(data.姓名,data.柜台,data.交易额,aggfunc='mean')
#默认以行索引为x轴,绘制柱状图
df.plot(kind='bar')

你可能感兴趣的:(pandas,python,开发语言)