【问题标题】:merging two tables and correcting the strings in python合并两个表并更正python中的字符串
【发布时间】:2018-02-22 14:09:28
【问题描述】:

对 Python 来说相对较新。我有两个 csv 文件,每个文件有两列,我正在尝试合并它们并创建一个文件。

所以,比如说,它们是: 表 1 enter image description here

表 2 enter image description here

我正在尝试编写代码将两个表合并为一个,这样:

  1. 如果两个表格中的描述不同,一个国家只能输入两次
  2. 表1是主列表或表,代码会检查描述,如果表1中的描述与表2非常接近,除了几个单词或字母,那么它将采用表1的描述。
  3. 应为两个表格中提供的尽可能多的描述输入国家/地区名称

我遇到的一个问题是描述中的文本不能出现在字典中。

这是我目前尝试过的代码,但效果不佳:

import csv

file1 = open('dataset.csv', 'rb') 
file2 = open('dataset2.csv', 'rb') 
data_a = csv.reader(file1)
data_b = dict(csv.reader(file2))  # <-- dict
file3 =  open('out.csv', 'wb') 

csv_out = csv.writer(file3)
for country, description in data_a:
csv_out.writerow([country, description, data_b.get(country, '')])

【问题讨论】:

  • 你能发布表格而不是图片吗?
  • 你可以使用外部库吗?请从您的 csv 中添加文本并检查 pandas

标签: python merge


【解决方案1】:

在将写入模式从“rb”更改为“r+”后,我确实使用您的代码得到了结果。

作为我使用的输入:

table_a = 印度,橙色是新的黑色

table_b = 印度,蓝街

结果我得到:

csv_out = 印度,橙色是新的黑色,蓝色街道

由于您没有指定,我不知道这是否是您想要实现的目标,但是更改写入模式,绝对可以解决您的问题之一。

import csv
main_table = open('set1.csv', 'r+')
minor_table = open('set2.csv', 'r+')
main_table = csv.reader(main_table)
minor_table = dict(csv.reader(minor_table))
solution_file = open('out.csv', 'r+')
out = csv.writer(soultion_files)
for country, description in main_table:
out.writerow([country, description, minor_table.get(country, '')])

【讨论】:

    猜你喜欢
    • 2017-09-11
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多