python 两个txt文档去除重复数据
时间: 2023-12-15 09:06:35 浏览: 104
可以使用以下代码来实现两个文本文件去重:
```python
with open('file1.txt', 'r') as f1, open('file2.txt', 'r') as f2:
file1_lines = set(f1.readlines())
file2_lines = set(f2.readlines())
# 去除重复数据
unique_lines = file1_lines.union(file2_lines)
# 写入新文件
with open('output.txt', 'w') as output_file:
for line in unique_lines:
output_file.write(line)
```
这段代码打开两个文本文件,读取文件内容并使用`set`去除重复数据。然后将两个文本文件的唯一行合并为一个集合,并将其写入一个新文件中。
相关问题
python 两个表格剔除重复数据
### 使用 Pandas 库比较并删除两个 Excel 或 CSV 文件中相同行
为了实现这一目标,可以利用 `pandas` 提供的强大功能来处理数据框之间的操作。具体来说,可以通过加载两个文件作为独立的数据框,接着通过合并(merge)的方式找出共同存在的记录,并最终移除这些重复项。
#### 加载必要的库
```python
import pandas as pd
```
#### 读取两个不同的CSV/Excel文件进入Pandas DataFrame对象
对于CSV文件:
```python
df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')
```
对于Excel文件,则需指定工作表名称或其他参数[^3]:
```python
df1 = pd.read_excel('file1.xlsx', sheet_name='Sheet1')
df2 = pd.read_excel('file2.xlsx', sheet_name='Sheet1')
```
#### 找出交集——即存在于两个DataFrame中的所有行
这里假设两份文档具有完全一致的列名结构;如果不一致则需要先做适当调整使它们匹配。
```python
common_rows = pd.merge(df1, df2, how='inner')
# inner join会返回两张表中共有的部分
```
#### 删除第二个DataFrame (df2) 中与第一个DataFrame (df1) 完全相同的行
这一步骤将创建一个新的不含任何来自 `df1` 的副本的新版本 `df2`.
```python
unique_df2 = pd.concat([df2, common_rows]).drop_duplicates(keep=False)
```
上述代码片段首先连接了原始的 `df2` 和之前找到的公共行集合 `common_rows`, 然后调用了 `.drop_duplicates()` 方法,在此过程中设置 `keep=False` 参数表示不保留任何一个重复实例,从而有效地清除了所有的重复条目。
#### 将清理后的结果保存回新的CSV或Excel文件
再次强调,如果要写入的是Excel文件,请记得提供额外的工作簿路径以及可选的工作表标签等信息.
```python
unique_df2.to_csv('cleaned_file2.csv', index=False)
# 对于Excel文件
unique_df2.to_excel('cleaned_file2.xlsx', sheet_name='CleanData', index=False)
```
这样就完成了从一个文件中剔除另一个文件中存在的全部冗余记录的任务。
python怎么读取txt文件数据
在Python中,读取TXT文件数据通常使用内置的`open()`函数配合`readlines()`或者逐行读取的方式。这里有两个简单的方法:
**方法一:逐行读取**
```python
with open('filename.txt', 'r') as file:
lines = file.readlines()
# 对每一行数据处理,例如分割成单词或整数
data = [line.strip() for line in lines] # 删除每行末尾的换行符
```
**方法二:一行读取所有数据**
```python
with open('filename.txt', 'r') as file:
all_data = file.read().splitlines() # 一次性读取所有行,并以换行符分隔
# 同样可以对数据进行处理
data = [int(line) if line.isdigit() else line for line in all_data]
```
注意,上述代码假设文本文件的内容是纯文本,如果存在特殊字符或非ASCII字符,可能需要额外的处理。
阅读全文
相关推荐












