比较CSV文件并删除所有首次出现的重复项。
创始人
2024-12-13 10:30:36
0

下面是一个使用Python语言来比较CSV文件并删除所有首次出现的重复项的示例代码:

import csv

def compare_and_delete_duplicates(csv_file):
    # 用于存储已经出现过的数据
    unique_data = []
    # 用于存储需要删除的行索引
    rows_to_delete = []

    with open(csv_file, 'r') as file:
        reader = csv.reader(file)
        headers = next(reader)  # 获取CSV文件的标题行

        for row_index, row in enumerate(reader):
            if row not in unique_data:
                unique_data.append(row)
            else:
                rows_to_delete.append(row_index)

    # 如果有需要删除的行,则创建一个新的CSV文件,将不需要删除的行写入其中
    if rows_to_delete:
        with open('new_file.csv', 'w', newline='') as new_file:
            writer = csv.writer(new_file)
            writer.writerow(headers)  # 写入标题行

            for row_index, row in enumerate(unique_data):
                if row_index not in rows_to_delete:
                    writer.writerow(row)

        print('删除了{}行重复数据,已保存到new_file.csv'.format(len(rows_to_delete)))
    else:
        print('没有重复数据。')

# 调用示例
compare_and_delete_duplicates('data.csv')

这段代码首先打开CSV文件并创建一个CSV reader对象。然后,它通过遍历CSV文件的每一行来比较数据。如果一行数据不在unique_data列表中,则将其添加到列表中;否则,将行索引添加到rows_to_delete列表中。

最后,如果有需要删除的行,则创建一个新的CSV文件,并将不需要删除的行写入其中。新文件名为new_file.csv。如果没有重复数据,则直接打印出相应信息。

请确保在运行代码之前将data.csv替换为你自己的CSV文件路径。

相关内容

热门资讯

四分钟介绍!新麻圈辅助,德州p... 自定义新麻圈辅助系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不管你是想...
五分钟技巧!广东雀神辅助器在哪... 五分钟技巧!广东雀神辅助器在哪下载,wpk俱乐部外 挂(详细透视辅助器教程),支持语音通讯、好友开房...
1分钟教学!福建麻将有挂吗,a... 1分钟教学!福建麻将有挂吗,aa扑克网上的挂真的(详细透视辅助插件教程)是由北京得福建麻将有挂吗黑科...
1分钟规律!边锋跑得快辅助,德... 1分钟规律!边锋跑得快辅助,德扑之星能看到底牌(详细透视辅助助手教程);值得一提的是,边锋跑得快辅助...
一分钟介绍!哥哥跑得快辅助,鱼... 您好,哥哥跑得快辅助这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在这...
四分钟了解!顺欣茶楼怎么辅助,... 1、四分钟了解!顺欣茶楼怎么辅助,wpk微扑克有挂(详细透视辅助软件教程);详细教程。2、顺欣茶楼怎...
9分钟透明!老胡麻将挂,aap... 9分钟透明!老胡麻将挂,aapoker辅助工具下载(详细透视辅助软件教程);老胡麻将挂简单的灵活控制...
三分钟规律!闽悦麻将是不是有挂... 三分钟规律!闽悦麻将是不是有挂,wpk辅助nzt(详细透视辅助挂教程);(需添加指定薇7574460...
2分钟方法!同城跑胡子能开挂吗... 2分钟方法!同城跑胡子能开挂吗,微扑克智能ai辅助(详细透视辅助软件教程);支持多人共享记分板与复盘...
2分钟规律!快玩炸翻天的辅助,... 2分钟规律!快玩炸翻天的辅助,约局吧软件有辅助(详细透视辅助器教程);快玩炸翻天的辅助软件透明挂作为...