python怎么将某个文件夹下所有csv表格合并并针对某一列去重,除了第一个文件的表头其他的去除
时间: 2023-06-09 20:06:53 浏览: 89
您好!您提出的问题涉及到Python中处理CSV文件的操作。下面是一个Python示例代码,可以实现将一个文件夹中的所有CSV文件合并,并对某一列进行去重处理,除了第一个文件的表头外其余行都去掉:
```python
import os
import csv
folder_path = '文件夹路径' # 指定文件夹路径
output_file = '输出文件路径' # 指定输出文件路径
merge_columns = '指定去重的列' # 指定需要去重的列,例如‘ID’
output_rows = []
first_file = True
for file_name in os.listdir(folder_path): # 遍历文件夹中所有的CSV文件
if not file_name.endswith('.csv'):
continue
with open(os.path.join(folder_path, file_name), newline='', encoding='utf-8') as csv_file:
csv_reader = csv.DictReader(csv_file)
for row in csv_reader:
if first_file:
output_rows.append(row) # 如果是第一个文件,将整个行添加到输出列表
first_file = False
else:
is_duplicate = False
# 判断当前行是否与之前的行有重复
for output_row in output_rows:
if row[merge_columns] == output_row[merge_columns]:
is_duplicate = True
break
if not is_duplicate:
output_rows.append(row) # 如果没有重复,将整个行添加到输出列表
# 将输出列表写入到输出文件
with open(output_file, 'w', newline='', encoding='utf-8') as csv_file:
writer = csv.DictWriter(csv_file, output_rows[0].keys())
writer.writeheader()
for output_row in output_rows:
writer.writerow(output_row)
print('合并CSV文件并去重完成!')
```
您只需要将示例代码中的‘文件夹路径’替换成您的实际文件夹路径,‘输出文件路径’替换成您期望输出的文件路径,‘指定去重的列’替换成您期望的去重列,就可以使用上述示例代码合并CSV文件并去重了。
阅读全文