【问题标题】:Find Duplicates from columns in CSV and Remove before write从 CSV 中的列中查找重复项并在写入前删除
【发布时间】:2020-09-10 05:26:35
【问题描述】:

我正在通过读取我创建的多个文本文件来创建一个 csv 文件,如下所示

Col1,  Col2,  Col3,  Col4
name1, copy, create, copy
       cut           paste

name2, data, null , data
       cut           cut

我想在写入 csv 之前从 column4 中删除与 column2 的重复项。像上面的 row1 一样,column4 只能像 row2column4 一样粘贴 > 应该是

想要的输出是这样的:

Col1,  Col2,  Col3,  Col4
name1, copy, create, paste
       cut           

name2, data, null , 
       cut           

我有类似下面的东西

stat2 = 'Col1,Col2,Col3,Col4\n'
text_file=os.listdir('.data/')
for pack in text_file:
    file = open("./data/"+ pack, "r")
    perp = file.read()
stat2 += pack + ',"'

#I'm iterating through different set of list and matching with all multiple files.
for word in package:
    stat2 += word + "\n"
stat2 += '","'

for word in data:
    stat2 += word + "\n"
stat2 += '","'

for word in file:
    stat2 += word + "\n"
stat2 += '"' + "\n"

f = open("data/csv_file.csv", "w")
f.write(stat2)

我想在将其写入 csv 之前删除重复项。任何人都可以建议对此进行任何更新。谢谢

【问题讨论】:

  • 您能否阐明所需输出中的换行符发生了什么。第 2 列中的第二个值真的在单独的一行吗?
  • 我只是比较带有列表的文本文件并添加到列中。
  • 你能代表文本文件中出现的输入吗?

标签: python python-3.x csv duplicates export-to-csv


【解决方案1】:

这个问题不是很清楚。但是,您通常可以做的是将一个列表的元素与另一个列表进行比较和编辑,并从目标列表中删除重复项。假设在这种情况下,col2 是目标列表:

col1 = ['copy','create','cut']
col2 = ['copy','create','cut','delete']

您可以使用列表推导来创建一个只有唯一值的新列表:

col2 = [i for i in col2 if i not in col1 ]

然后如果你打印结果,你会得到 col2 的这个:

['delete']

【讨论】:

    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 2021-04-12
    • 2019-08-28
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    相关资源
    最近更新 更多