如何用pandas pivot_table透视表数据画图表

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl

mpl.rcParams['font.sans-serif'] = ['SimHei']

filepath = "C:/python/pandas/broadband_bundle_Office365-171229b.csv"
df = pd.read_csv(filepath,encoding="utf-8") #读取csv文件
data = pd.DataFrame(data=[df['受理日期'],df['区局'],df['状态'],df['宽带类型']]).T 
#抽取想要分析的列,组成新的DataFrame
#数据清洗,替换数据表中的不规则内容,便于后续分析
data.replace({'已取消':'cancel','拆机 ':'remove','拆机':'remove'},inplace=True)
data.replace(['已完成','改版本','未完成','未竣工退订'],'add',inplace=True)
data['区局'].replace({' 南区':'南区','中区 ':'中区','代理 ':'代理','莘闵 ':'莘闵'},inplace=True)
table = pd.pivot_table(data,values=['受理日期'],index=['区局'],aggfunc='count')
#生成数据透视表,聚合方法为计数
df1 = pd.DataFrame(data=[table.index,table.iloc[:,0]]).T
df1.replace('嘉定 ','嘉定',inplace=True)
df1.columns = ['区局','数量']#为新的dataframe设定列标题
df2=df1.sort_values(by=['数量'],ascending=False)
#print(data.tail(200))
x = df2.iloc[:,0]
ax = plt.figure()
plt.xticks(np.arange(len(x)),x)#修改坐标轴刻度,使得柱状图可以按顺序排列显示
plt.bar(np.arange(len(x)),df2.iloc[:,1],width=0.5,color='g')
plt.show()
print(df2)
Figure_1.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容