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
网友评论