根据 CSV 中单个列的值删除部分相似的条目

Removing partially similar entries based on a value from a single column in CSV

我有 CSV table,它是一段时间内来自不同用户的推文列表。该数据集包括推文和转发,除了主题标签或其他用户添加的附加评论外,它们是相同的。例如:

Column A Column B
11/03/2022 We have a new president!
13/03/2022 We have a new president! #newpresident
14/03/2022 My mom is a president.
14/03/2022 RT @user: We have a new president! What is going to happen?

所有包含“我们有一位新总统!”的行对我来说被视为重复,我需要摆脱它们,所以原始行 #1 和 #3 是我唯一需要的。我试过 运行 这个:

import csv
import re

csvInput = open('input.csv', 'r', encoding="utf-8-sig", newline='')
csvOutput = open('output.csv', 'w', encoding="utf-8-sig", newline='')

csvReader = csv.reader(csvInput)
csvWriter = csv.writer(csvOutput)
prevRows = set()

for row in csvReader:
    if row[2] in prevRows or re.sub('^RT @.*: ', '', row[2]) in prevRows:
        continue
    prevRows.add(row[2])
    csvWriter.writerow(row)

csvOutput.close()
csvInput.close()

行不通。有没有办法修改这个或更好的解决方案?

pandas 模块可能非常有用:

import pandas as pd

pd.read_csv('input.csv').loc[~df['Column B'].str.contains('(#.+$|^RT @.+)')].to_csv('output.csv', index=False)

PS。未测试