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)
如何用pandas pivot_table透视表数据画图表
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Excel中有一个非常强大的功能就是数据透视表,通过托拉拽的方式可以迅速的查看数据的聚合情况,这里的聚合可以是计数...
- 原文在此:http://python.jobbole.com/81212/ 使用pandas中pivot_tabl...
- 透视表pivot_table()是非常强大的汇总运算函数。 在SQL语句和excel中透视表也是非常普遍的。 pi...