美文网首页我爱编程
如何用pandas pivot_table透视表数据画图表

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

作者: tommyjex | 来源:发表于2018-03-07 22:33 被阅读0次
    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

    相关文章

      网友评论

        本文标题:如何用pandas pivot_table透视表数据画图表

        本文链接:https://www.haomeiwen.com/subject/mbosfftx.html