重复值和空值的处理

在一些情况下,如要查询数据中的几个字段,此时就有可能产生重复记录,而重复的记录是不符合规范的,数据表是现实世

 

界的客观反映,因此,空值的产生是不可避免. 

 

 

1.查询时不显示重复记录

在实现查询操作时,如果查询的选择列表中包含一个表的主键,那么每个查询结果中的记录将是唯一的,如果主键不包含

 

在查询结果中,就可能出现重复记录.使用Distinct关键字可以消除重复记录.

 

Distinct关键字可从SQL 语句结果中除去重复的行,如果没有指定DISTINCT关键字,那么将返回所有行,包括重复的行.

 

在使用DISTINCT关键字去除重复记录时,需将DISTINCT关键字放在第一个字段名之前.

 

DISTINCT的语法:Select [disinct|all]select_list

注意:

(1)在select列表中只能使用一次distinct关键字,不要在其后添加逗号,

 

(2)如果省略了distinct关键字,查询结果中不会消除重复的记录,也可以指定all关键字来明确保留重复记录,此项为默认的

 

行为

 

(3)distinct关键字并不是指某一行,而是指不重复select输出的所有列

 

(4)distinct是sum,avg和count函数的可选关键字,如果使用distinct关键字,那么在计算总和,平均值或计数之前,先消除重

 

复的值.

 

例如:显示不重复的内容

 

select distinct 书号,书名,作者,出版社 from tb_BookSell  order by 书号

2.列出数据中的重复记录和记录条数

 

通过HAVING子句为组指定条件.通过作为一个整体的组指定条件,可限定查询中出现的组.在对数据进行分组和聚集后,

 

将用到having 子句中的条件,中有符号条件的组才会出现在查询中

 

 

例如:查询重复的书籍

select 书名,书号,作者,COUNT (书名) as 重复数量from tb_BookSell  group by 书名,书号,作者 having count(书名)>=2

 

 

 

3..取记录中指定字段的空值

 

NULL 代表的是一个未知的值,在查询数据时,想要找出字段值是NULL 的记录时,可以用is NULL 来判断NULL 值.

 

例如:查找出NULL 值

 

select 学生姓名,所在学院,备注信息 from tb_stuInfo where 备注信息 is null

 

 

 

4.除去记录中指定字段的空值

 

在3的时候说过如何查找数据中的空值,那么我们如何能把这些空值去掉呢?

 

要去掉空值,先要了解一下列中空值形成的原因:

 

1).其值未知

 

2).其值不存在

 

3)列对表行不可用

 

例如:查询没有NULL值的数据

 

select 学生姓名,所在学院,备注信息 from tb_stuInfo where 备注信息 is not null

 

 

5.在程序的显示中判断是否为空值

 

在使用 MSHFlexGrid1控件显示查询的结果,如果在数据库表中是空值的话,就会显示"无用null值",那我们如何判读是否

 

为null值呢 ,这就需要一个函数____ISNULL 函数.

 

我们就以一个例子来看看:

 

在没有今天没有结账的情况下,查询今天的结账情况:

select sum(Presentaddcash) as Presentaddcash,sum(Presentconsume) as Presentconsume, _

sum(Presentreturncash) as Presentreturncash,sum(Presentbalance)as Presentbalance, _

sum(Prioraddcash) as Prioraddcash  from  dayaccout_Info where  couutdate between'2012/9/17' and '2012/9/17'

那么就用isnull函数来判断是否为NULL显示出来:

 '填写上期余额
        If Not IsNull(mrc.Fields("Prioraddcash").Value) Then
            TxtRemaincash.Text = mrc.Fields("Prioraddcash").Value
        Else
            TxtRemaincash.Text = 0
        End If

 

如果不是NULL 值的话,就显示当前的信息,如果是NUll值的话,就显示为0.

 

如果对于空值和重复数据的处理,你 有更好地方法,我们一起交流!

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
数据库语言 数据库的简易流程(数据库客户端软件和数据库服务软件的执行流程) 主键的概念 如何创建主键 如何创建外键 主外键关系的概念以及使用 数据库的主要类型 数据库的主要数据类型 使用SQL语句来创建数据库和表 约束分类 top的使用 Distinct的使用(去除重复数) 聚合函数 聚合函数注意事项 between and 和 in 的使用 like, not like 通配符(%,_,[],^) 空值处理null 是什么? 排序(order by id asc / desc)(默认是哪一种排序?) 分组(group by ),单条件分组,多条件分组(分组时,要注意的事情[位置,列]) 筛选(Having的使用),它和where的区别 类型转换(CAST,CONVERT) union,union all的使用 一次插入多条数据 字符串函数 ADO.NET主要类 数据库连接字符串 SqlConnection类的State属性 SqlCommand类的方法: StatementCompleted事件的触发 获得刚刚插入数据库的自增id Sql注入攻击(避免方式?) 如何使用迭代生成树形菜单 单例模式(单例模式的创建) DataTable的使用 类SqlDataAdapter的使用(重点) 类SqlCommandBuilder的使用(注意:他必须操作的是有主键的数据库) 提取查询语句,封装SqlHelper类(不仅要会,而且要理解思想) SQL中的Switch语句 SQL中的子查询 SQL中的Exists用法 SQL中的Any SQL中的All SQL2008 微软官方推荐分页方式 SQL中表等连接(内连接) inner join SQL中表左连接(左外连接) left join SQL中表右连接(右外连接) right join SQL中表交叉连接(两张表的乘积) SQL中表全连接 full join SQL中变量 SQL中的事务 创建存储过程 存储过程带输出参数 调用存储过程 触发器定义 触发器类型: 触发器触发条件: 什么是索引 索引类型 什么是填充因子 什么是临时表 什么是局部临时表 什么是全局临时表 什么是三层结构 三层结构的目的 具体的三层是哪三层 三层之间的关系 三层结构的优缺点 邮件发送方法 Excel导入导出 MD5加密解密方法 读取数据库后,判断dataset里列的是否为空 项目术语
好的,我会根据你的要求来回答你的问题。首先,我们需要先导入 Pandas 库并读取 csv 文件: ```python import pandas as pd df = pd.read_csv('data.csv') ``` 接下来,我们可以按照下面的步骤进行数据审核: ```python # 显示数据前5行 print(df.head()) # 显示数据的基本统计信息 print(df.describe()) # 查看数据的列名 print(df.columns) # 查看数据的形状 print(df.shape) ``` 接下来,我们可以使用 Pandas 提供的函数来查看缺失记录并填充空值。例如,我们可以使用 `isnull()` 函数来查看缺失记录: ```python # 查看缺失记录 print(df[df.isnull().any(axis=1)]) ``` 我们可以使用多种方法来填充 NaN(空值),例如使用 `fillna()` 函数来填充空值: ```python # 使用平均填充空值 df.fillna(df.mean(), inplace=True) # 使用中位数填充空值 df.fillna(df.median(), inplace=True) # 使用众数填充空值 df.fillna(df.mode().iloc[0], inplace=True) # 丢弃空值 df.dropna(inplace=True) ``` 接下来,我们可以使用 Pandas 提供的函数来判断重复并去除重复。例如,我们可以使用 `duplicated()` 函数来判断重复: ```python # 判断重复 print(df.duplicated()) # 去除重复 df.drop_duplicates(inplace=True) ``` 最后,我们可以使用 Z-SCORE 标准化 age 列并使用 MaxMin 数据归一化 orders 列。例如,我们可以使用 `apply()` 函数来对 age 列进行标准化: ```python # Z-SCORE 标准化 age 列 df['age'] = df['age'].apply(lambda x: (x - df['age'].mean()) / df['age'].std()) ``` 我们可以使用 `apply()` 函数来对 orders 列进行数据归一化: ```python # MaxMin 数据归一化 orders 列 df['orders'] = df['orders'].apply(lambda x: (x - df['orders'].min()) / (df['orders'].max() - df['orders'].min())) ``` 以上就是利用 Pandas 编程处理 csv 文件的基本步骤。希望能帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弯_弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值