数据分析 五日

panadas与matplotlib

1  pandas缺失值处理

  数据处理的过程中,遇到NaN类型的缺失数据,如果缺失数据占总数据的数量较小,可以进行删除操作,如果数量较大,必须对数据进行填充

    首先要检查数据是否缺失,随后判断是否可以删除,对不可删除数据进行合理的填充
        1    导入数据
            data05 = pd.read_excel(r'data_test05.xlsx') 
        2    判断是否缺失
            data05.isnull()      #    统计每个数据项是否有缺失
            data05.isnull().any(axis = 0)  #    统计列字段下是否含有缺失
        3    计算各列数据的缺失比例,判断是否可以删除
            ata05.isnull().sum(axis = 0)/data05.shape[0]
                    data05.dropna()    #    可以删除
         4    不可删除就应该对数据进行合理的填充
            data05.gender.mode()[0]
            #    众数:可以有一个也可能是多个    mode()[0]
            data05.age.mean()    
            #    平均值    mean()
            data05.income.median() 
            #    中位数    median()

2  数据的汇总

pd.pivot_table(
        data,        #    指定需要构造透视表的数据集 
        values=None,     #    指定需要拉入“数值”框的字段列表
        index=None,     #    指定需要拉入“行标签”框的字段列表
        columns=None,     #    指定需要拉入“列标签”框的字段列表
        aggfunc='mean',    
         #    指定数值的统计函数,默认为统计均值,也可以指定numpy模块中的其他统计函数
        fill_value=None,     #    指定一个标量,用于填充缺失值
        margins=False,     
        #    类型参数,是否需要显示行或列的总计值,默认为False
        dropna=True, 
        类型参数,是否需要删除整列为缺失的字段,默认为True 
        margins_name='All'    #    指定行或列的总计名称,默认为All
        )

3  数据的分组与聚合

  3.1  分组  方法  groupby

    grouped = data06.groupby(by = ['color','cut'])

  3.2  分组后的聚合统计  必须使用的关键字  aggregate

    result = grouped.aggregate({

        'color':np.size,

           'carat':np.min,

        'price':np.mean,

        'table':np.max})

  3.3  调整变量名的顺序

  result = pd.DataFrame(result, columns=['color','carat','price','table'])

  3.4  数据集重命名  

  result.rename(columns={'color':'counts',    #  修改名称
             'carat':'min_weight',  #  修改名称
             'price':'avg_price',     #  修改名称
             'table':'max_table'},  #  修改名称
             inplace=True)     #  确认修改

  3.5  数据的处理

  drop方法  删除数据  drop(要删除的行列,inplace=Ture  #确认修改)

  sort_values(  )  不写默认升序,参数sort_values(ascending=False)倒序

4  数据的合并

pd.concat(
objs,     #    指定需要合并的对象,可以是序列、数据框或面板数据构成的列表
axis=0,    #    指定数据合并的轴,默认为0,表示合并多个数据的行,如果为1,就表示合并多个数据的列
join='outer',     #    指定合并的方式,默认为outer,表示合并所有数据,如果改为inner,表示合并公共部分的数据
join_axes=None,    #    合并数据后,指定保留的数据轴
 ignore_index=False,    #    bool类型的参数,表示是否忽略原数据集的索引,默认为False,如果设为True,就表示忽略原索引并生成新索引
keys=None)   #     为合并后的数据添加新索引,用于区分各个数据部分

 5  数据的连接  

pd.merge(
left, right,     #    left指定需要连接的主    right:指定需要连接的辅表
how='inner',     #   指定连接方式,默认为inner内连,还有其他选项,如左连left、右连right和外连outer on:指定连接两张表的共同字段 
on=None,        #    on:指定连接两张表的共同字段
left_on=None,    #    left_on:指定主表中需要连接的共同字段
right_on=None,   #    right_on:指定辅表中需要连接的共同字段 
left_index=False,     
#    bool类型参数,是否将主表中的行索引用作表连接的共同字段
right_index=False,     
#    bool类型参数,是否将辅表中的行索引用作表连接的共同字段
sort=False,     
#    bool类型参数,是否对连接后的数据按照共同字段排序,默认为False 
suffixes=('_x', '_y'))    #    如果数据连接的结果中存在重叠的变量名,则使用各自的前缀进行区分

 6  matplotlib

6.1  饼图

  饼图的作用

    饼图属于最传统的统计图形之一,几乎随处可见,例如大型公司的屏幕墙、各种年度论坛的演示稿以及各大媒体发布的数据统计报告等;
    饼图是将一个圆分割成不同大小的楔(扇)形,而圆中的每一个楔形代表了不同的类别值,通常根据楔形的面积大小来判断类别值的差异;

  pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, labeldistance=1.1)

  x:指定绘图的数据
  explode:指定饼图某些部分的突出显示,即呈现爆炸式
  labels:为饼图添加标签说明,类似于图例说明
  colors:指定饼图的填充色
  autopct:自动添加百分比显示,可以采用格式化的方法显示
  pctdistance:设置百分比标签与圆心的距离
  labeldistance:设置各扇形标签(图例)与圆心的距离

6.2  条形图

  条形图作用  

  虽然饼图可以很好地表达离散型变量在各水平上的差异,但其不擅长对比差异不大或水平值过多的离散型变量,因为饼图是通过各扇形面积的大小来比价差异的,面积的比较有时并不直观;
  对于条形图而言,对比的是柱形的高低,柱体越高,代表的数值越大,反之亦然;

  bar(x, height, width=0.8, bottom=None, color=None, edgecolor=None, tick_label=None, label = None, ecolor=None)

  x:传递数值序列,指定条形图中x轴上的刻度值
  height:传递数值序列,指定条形图y轴上的高度
  width:指定条形图的宽度,默认为0.8
  bottom:用于绘制堆叠条形图
  color:指定条形图的填充色
  edgecolor:指定条形图的边框色
  tick_label:指定条形图的刻度标签
  label:指定条形图的标签,一般用以添加图例

posted @ 2021-10-18 23:51  aa_wang  阅读(50)  评论(0)    收藏  举报