一句删除重复数据行

最近有个项目需要从网上抓数据,有重复数据在所难免,就想把重复数据删掉,只留一条有用的。

各论坛、各博客、各知名网站找个遍,竟然没有找到我想要的方法。(我这人比较懒,又喜欢简单的东西,所以一直想找一个一条SQL语句就能搞定的方法。)

没办法,只能自己搞了。就又去w3cschool重新深造了。(w3cschool可是个好地方!别笑我,理论的东西和能在字典中查到的东西,我从来不刻意去学。)

要么说懒人有懒法呢,真让我搞出来了。自己看吧。

DELETE FROM tablename WHERE id IN( SELECT MAX(id) FROM tablename GROUP BY fieldname HAVING COUNT(0)>1 )

我解释一下:

首先这里的id视为主键。

子查询是把数据分了个组GROUP BY,过虑了一下只要有重复的数据COUNT(0)>1。

返回的结果是个集合,是每组中最大的一个主键MAX(id)。

主句就是一个删除语句,没什么特别,条件是IN型过虑。

没错,高手们已经看出来了。这只能删除重复数据中的一条数据。

前面说了,我这个人懒,勤快的人可以把他放到T-SQL循环中,用子查询做为条件就行了。反正我这数据量不是很大,这就足够了。

注意,重要的不是原创,是分享。网上的用临时表、用标记等等都弱爆了,但不鄙视,共同学习,共同学习。

### 使用 Pandas 删除 Excel 文件中的重复 为了使用 Pandas 读取 Excel 文件删除其中的重复,可以按照以下步骤执: #### 1. 导入库 首先需要导入 `pandas` 库来处理数据。 ```python import pandas as pd ``` #### 2. 读取 Excel 文件 通过调用 `pd.read_excel()` 函数加载 Excel 数据表。可以根据实际需求设置参数,比如定工作表名称或索引、跳过某些等[^1]。 ```python df = pd.read_excel('example.xlsx', sheet_name='Sheet1') ``` 此处 `'example.xlsx'` 是文件路径,`sheet_name='Sheet1'` 定了要读取的工作表名称。 #### 3. 查找和移除重复 Pandas 提供了非常方便的方法来查找和删除 DataFrame 中的重复记录——`drop_duplicates()` 方法。它能够基于全部列或者选定的一些列检测重复项,将其去除。 ```python df_cleaned = df.drop_duplicates() ``` 默认情况下,`drop_duplicates()` 会考虑所有的列来识别重复条目。如果只想依据特定几列判定是否重复,则需传入 `subset` 参数: ```python df_cleaned = df.drop_duplicates(subset=['ColumnA', 'ColumnB']) ``` 这句代码意味着仅当 'ColumnA' 和 'ColumnB' 这两列值完全相同时才认为是重复[^3]。 #### 4. 存储清理后的数据 最后把清洗好的数据存回一个新的 Excel 文件中。 ```python with pd.ExcelWriter('cleaned_data.xlsx') as writer: df_cleaned.to_excel(writer, index=False) ``` 这样就完成了从读取原始数据到清除冗余信息再导出的过程[^1]。 --- ### 完整示例代码 下面是综合上述各步的一个完整实例: ```python import pandas as pd # Step 1: Load the data from an Excel file. df_original = pd.read_excel('source_file.xlsx') # Step 2: Remove duplicate rows based on all columns or specific ones. df_no_dups_all_cols = df_original.drop_duplicates() # For duplicates across entire row df_no_dups_selected_cols = df_original.drop_duplicates(subset=['ColX']) # Specify which column(s) to check for duplication. # Optional step - Resetting Index after dropping duplicates may be useful sometimes. df_reset_index = df_no_dups_all_cols.reset_index(drop=True) # Step 3: Save cleaned up dataset into another excel document. with pd.ExcelWriter('destination_without_duplicates.xlsx') as writer: df_reset_index.to_excel(writer, index=False) ``` 此脚本实现了基本功能的同时还提供了灵活性让用户自定义要去重的关键字段[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值