当前位置 博文首页 > pandas求平均数和中位数的方法实例

    pandas求平均数和中位数的方法实例

    作者:不思量自难忘 时间:2021-09-19 18:31

    目录
    • 准备
    • 1.求平均数
      • 1.1对全表进行操作
        • 1.1.2 求取每行的平均数
      • 1.2 对单独的一行或者一列进行操作
        • 1.2.1 求取单独某一列的平均数
      • 1.3 对多行或者多列进行操作
        • 1.3.1 求取多列的平均数
        • 1.3.2 求取多行的平均数
    • 2 求中位数
      • 2.1对全表进行操作
        • 2.1.1对每一列求中位数
        • 2.1.2 对每一行求中位数
      • 2.2 对单独的一行或者一列进行操作
        • 2.2.1 对某一列求中位数
        • 2.2.2 对某一行求中位数
      • 2.3 对多行或者多列进行操作
        • 2.3.1 对多列求中位数
        • 2.3.2 对多行求中位数
    • 总结

      准备

      pandas是一个强大的Python数据分析的工具包。

      pandas是基于NumPy构建的。

      pandas的主要功能

      • 具备对其功能的数据结构DataFrame、Series
      • 集成时间序列功能
      • 提供丰富的数学运算和操作
      • 灵活处理缺失数据

      本文用到的表格内容如下:

      先来看一下原始情形:

      import pandas as pd
      ​
      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df)
      

      result:

         分类            货品  实体店销售量  线上销售量  成本   售价
      0  水果            苹果      34    234  12   45
      1  家电           电视机      56    784  34  156
      2  家电            冰箱      78    345  24  785
      3  书籍  python从入门到放弃      25     34  13   89
      4  水果            葡萄     789     56   7  398

      1.求平均数

      1.1对全表进行操作

      1.1.1求取每列的平均数
      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df.mean())
      

      result:

      实体店销售量    196.4
      线上销售量     290.6
      成本         18.0
      售价        294.6
      dtype: float64

      1.1.2 求取每行的平均数

      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df.mean(axis=1))
      

      result:

      0     81.25
      1    257.50
      2    308.00
      3     40.25
      4    312.50
      dtype: float64

      先看运行结果,我们可以看到,每一行求平均数的时候直接忽略文本字符类型的列,只对数字类型的列进行求平均数。就比如第一行的数据

         分类            货品  实体店销售量  线上销售量  成本   售价
      0  水果            苹果      34    234  12   45

      上面的81.25=(34+234+12+45) / 4,,其他的行也是如此

      1.2 对单独的一行或者一列进行操作

      1.2.1 求取单独某一列的平均数

      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df['实体店销售量'].mean())
      

      result:

      196.4

      1.2.2 求取单独某一行的平均数

      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df.iloc[[0]].mean())
      

      result:

      实体店销售量     34.0
      线上销售量     234.0
      成本         12.0
      售价         45.0
      dtype: float64

      1.3 对多行或者多列进行操作

      1.3.1 求取多列的平均数

      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df[['实体店销售量', "线上销售量"]].mean())
      

      result:

      实体店销售量    196.4
      线上销售量     290.6
      dtype: float64

      1.3.2 求取多行的平均数

      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df.iloc[[0, 1]].mean())
      

      result:

      实体店销售量     45.0
      线上销售量     509.0
      成本         23.0
      售价        100.5
      dtype: float64

      2 求中位数

      2.1对全表进行操作

      2.1.1对每一列求中位数

      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df.median())
      

      result:

      实体店销售量     56.0
      线上销售量     234.0
      成本         13.0
      售价        156.0
      dtype: float64

      可以看到,中位数的概念只对数字有效

      2.1.2 对每一行求中位数

      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df.median(axis=1))
      

      result:

      0     39.5
      1    106.0
      2    211.5
      3     29.5
      4    227.0
      dtype: float64

      2.2 对单独的一行或者一列进行操作

      2.2.1 对某一列求中位数

      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df['实体店销售量'].median())
      
      

      result:

      56.0

      2.2.2 对某一行求中位数

      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df.iloc[[0]].median())
      

      result:

      实体店销售量     34.0
      线上销售量     234.0
      成本         12.0
      售价         45.0
      dtype: float64

      2.3 对多行或者多列进行操作

      2.3.1 对多列求中位数

      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df[['实体店销售量', "线上销售量"]].median())
      

      result:

      实体店销售量     56.0
      线上销售量     234.0
      dtype: float64

      2.3.2 对多行求中位数

      df = pd.read_excel(r'C:\Users\admin\Desktop\测试.xlsx')
      print(df.iloc[[0, 1]].median())
      

      result:

      实体店销售量     45.0
      线上销售量     509.0
      成本         23.0
      售价        100.5
      dtype: float64

      总结

      jsjbwy
      下一篇:没有了