当前位置 : 主页 > 编程语言 > python >

Python实战基础之Pandas统计某个数据列的空值个数

来源:互联网 收集:自由互联 发布时间:2023-01-30
目录 一、实战场景 二、主要知识点 三、菜鸟实战 1、创建 python 文件 2、运行结果 补充:Pandas检查是否有空值、处理空值 总结 一、实战场景 实战场景:Pandas 如何统计某个数据列的空
目录
  • 一、实战场景
  • 二、主要知识点
  • 三、菜鸟实战
    • 1、创建 python 文件
    • 2、运行结果
  •  补充:Pandas检查是否有空值、处理空值
    • 总结

      一、实战场景

      实战场景:Pandas 如何统计某个数据列的空值个数

      二、主要知识点

      • 文件读写
      • 基础语法
      • Pandas
      • numpy

      三、菜鸟实战

      马上安排!

      1、创建 python 文件

      """
      对如下DF,设置两个单元格的值
      ·使用iloc 设置(3,B)的值是nan
      ·使用loc设置(8,D)的值是nan
      """
      import numpy as np
      import pandas as pd
       
      np.random.seed(66)
      df = pd.DataFrame(np.random.rand(10, 4), columns=list('ABCD'))
      df.iloc[3, 1] = np.nan
      df.loc[8, 'D'] = np.nan
      print(df)
       
       
      print(df.isnull().sum())

      2、运行结果

                A         B         C         D
      0  0.154288  0.133700  0.362685  0.679109
      1  0.194450  0.251210  0.758416  0.557619
      2  0.514803  0.467800  0.087176  0.829095
      3  0.298641       NaN  0.678006  0.903489
      4  0.514451  0.539105  0.664328  0.634057
      5  0.353419  0.026643  0.165290  0.879319
      6  0.067820  0.369086  0.115501  0.096294
      7  0.083770  0.086927  0.022256  0.771043
      8  0.049213  0.465223  0.941233       NaN
      9  0.361318  0.031319  0.304045  0.188268
      A    0
      B    1
      C    0
      D    1
      dtype: int64

       补充:Pandas检查是否有空值、处理空值

      1.创建有空值的DataFrame

      import numpy as np
      import pandas as pd
      
      dates = pd.date_range("20200307", periods=4)
      df1 = pd.DataFrame(np.arange(12).reshape(4, 3), index=dates, columns=["A", "B", "C"])
      df2 = pd.DataFrame(df1, index=dates, columns=["A", "B", "C", "D"])  # 新增D列,却不赋值,NaN表示空值
      print(df2)
      # 打印输出:
      #             A   B   C   D
      # 2020-03-07  0   1   2 NaN
      # 2020-03-08  3   4   5 NaN
      # 2020-03-09  6   7   8 NaN
      # 2020-03-10  9  10  11 NaN

      2.检查是否有空值

      print(df2.isnull())  # 是空值返回True,否则返回False
      print(np.any(df2.isnull()))  # 只要有一个空值便会返回True,否则返回False
      print(np.all(df2.isnull()))  # 全部值都是空值便会返回True,否则返回False
      # 输出结果:
      #                 A      B      C     D
      # 2020-03-07  False  False  False  True
      # 2020-03-08  False  False  False  True
      # 2020-03-09  False  False  False  True
      # 2020-03-10  False  False  False  True
      # True
      # False
      

      3.给NaN赋值

      df2.iloc[0, 3] = 10  # 直接给某个位置赋值
      print(df2)
      # 打印输出:
      #            A   B   C     D
      # 2020-03-07  0   1   2  10.0
      # 2020-03-08  3   4   5   NaN
      # 2020-03-09  6   7   8   NaN
      # 2020-03-10  9  10  11   NaN
      
      series = pd.Series([11, 12, 13], index=dates[1:4])
      df2["D"] = series  # 同时给D列赋多个值
      print(df2)
      # 打印输出:
      #             A   B   C     D
      # 2020-03-07  0   1   2   NaN
      # 2020-03-08  3   4   5  11.0
      # 2020-03-09  6   7   8  12.0
      # 2020-03-10  9  10  11  13.0

      4.去除有空值的行或列

      df2.loc["2020-03-10", ["A", "B", "C"]] = [11, 12, 15]
      df2.fillna("null")  # 把空值填充成null
      
      # dropna(axis,how,subset)方法会删除有空值的行或列,
      # axis为0是行,axis为1是列,
      # how为any时该行或列只要有一个空值就会删除,all是全都是空值才删除
      # subset是一个列表,指定某些列
      df2.dropna(axis=0, how="any", subset=["A", "D"])

      总结

      到此这篇关于Python实战基础之Pandas统计某个数据列空值个数的文章就介绍到这了,更多相关Pandas统计数据列空值个数内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

      上一篇:Anaconda环境变量的配置图文详解
      下一篇:没有了
      网友评论