📅  最后修改于: 2023-12-03 14:50:17.902000             🧑  作者: Mango
在数据分析和数据处理中,常常需要操作 CSV 文件。当 CSV 文件中有重复行时,可能会影响我们的分析结果。因此,我们需要对 CSV 文件进行去重操作。
下面是一些 Python 代码片段,可以帮助您删除 CSV 文件中的重复行。
首先,我们需要使用 Python 的 csv
模块读取 CSV 文件。可以使用以下代码读取 CSV 文件中的所有行。
import csv
def read_csv_file(file):
with open(file, 'r') as f:
reader = csv.reader(f)
rows = [row for row in reader]
return rows
在上面的代码中,csv.reader
函数返回一个可迭代的对象,其中每个元素是一行文本。
使用 Python 的 set
数据结构可以删除列表中的重复元素。我们可以使用以下代码删除 CSV 文件中的重复行。
def remove_duplicates(rows):
unique_rows = []
for row in rows:
if row not in unique_rows:
unique_rows.append(row)
return unique_rows
在上面的代码中,我们使用一个空列表 unique_rows
存储唯一的行。然后,我们迭代 CSV 文件中的每一行,检查该行是否已经存在于唯一的行中。如果该行不存在于唯一的行中,则将该行添加到唯一的行中。
最后,我们需要将去重后的数据写入新的 CSV 文件中。可以使用以下代码将去重后的数据写入新的 CSV 文件中。
def write_csv_file(file, rows):
with open(file, 'w', newline='') as f:
writer = csv.writer(f)
for row in rows:
writer.writerow(row)
在上面的代码中,我们使用 Python 的 csv.writer
函数创建一个写入器对象。然后,我们迭代唯一的行,并使用 writer.writerow
方法将每一行写入新的 CSV 文件中。
下面是完整的 Python 代码片段。
import csv
def read_csv_file(file):
with open(file, 'r') as f:
reader = csv.reader(f)
rows = [row for row in reader]
return rows
def remove_duplicates(rows):
unique_rows = []
for row in rows:
if row not in unique_rows:
unique_rows.append(row)
return unique_rows
def write_csv_file(file, rows):
with open(file, 'w', newline='') as f:
writer = csv.writer(f)
for row in rows:
writer.writerow(row)
if __name__ == '__main__':
input_file = 'input.csv'
output_file = 'output.csv'
rows = read_csv_file(input_file)
unique_rows = remove_duplicates(rows)
write_csv_file(output_file, unique_rows)
在上面的代码中,我们首先使用 read_csv_file
函数读取输入 CSV 文件中的所有行。然后,我们使用 remove_duplicates
函数删除重复行。最后,我们使用 write_csv_file
函数将去重后的数据写入输出 CSV 文件中。