通过公共列python合并两个CSV文件

sgpbyrne

我正在尝试合并具有公共ID列的两个csv文件,并将合并写入新文件。我已经尝试了以下方法,但它给了我一个错误-

import csv
from collections import OrderedDict

filenames = "stops.csv", "stops2.csv"
data = OrderedDict()
fieldnames = []
for filename in filenames:
    with open(filename, "rb") as fp:  # python 2
        reader = csv.DictReader(fp)
        fieldnames.extend(reader.fieldnames)
        for row in reader:
            data.setdefault(row["stop_id"], {}).update(row)

fieldnames = list(OrderedDict.fromkeys(fieldnames))
with open("merged.csv", "wb") as fp:
    writer = csv.writer(fp)
    writer.writerow(fieldnames)
    for row in data.itervalues():
        writer.writerow([row.get(field, '') for field in fieldnames])

两个文件都有“ stop_id”列,但我又收到此错误-KeyError:“ stop_id”

任何帮助将非常感激。

谢谢

sgpbyrne

谢谢四丈

这是对我有用的-由每个csv中的第一列合并。

import csv
from collections import OrderedDict

with open('stops.csv', 'rb') as f:
    r = csv.reader(f)
    dict2 = {row[0]: row[1:] for row in r}

with open('stops2.csv', 'rb') as f:
    r = csv.reader(f)
    dict1 = OrderedDict((row[0], row[1:]) for row in r)

result = OrderedDict()
for d in (dict1, dict2):
    for key, value in d.iteritems():
         result.setdefault(key, []).extend(value)

with open('ab_combined.csv', 'wb') as f:
    w = csv.writer(f)
    for key, value in result.iteritems():
        w.writerow([key] + value)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

基于公共列合并两个csv文件

来自分类Dev

使用公共列合并两个文件

来自分类Dev

使用公共列合并两个文件

来自分类Dev

使用公共列合并两个Excel文件

来自分类Dev

将两个文件与公共列合并

来自分类Dev

根据公共列值合并两个文件

来自分类Dev

如何通过awk中的临时公共列连接两个CSV文件?

来自分类Dev

通过公共列连接两个文件

来自分类Dev

根据python中的两列在python中映射或合并两个csv文件?

来自分类Dev

通过一列AWK合并两个文件

来自分类Dev

根据匹配的列数据合并两个CSV文件

来自分类Dev

Python合并两个CSV文件Python

来自分类Dev

如何通过具有公共标题来合并两个文件的行?

来自分类Dev

通过匹配python中列的项目合并两个tsv文件

来自分类Dev

如何在python中合并两个csv文件

来自分类Dev

在Python中合并两个CSV文件

来自分类Dev

Python在多列和最近的日期时间上合并两个csv文件

来自分类Dev

python从两个csv文件中提取列并将其合并为一个新的csv文件

来自分类Dev

合并两个大的csv文件

来自分类Dev

如何合并两个CSV文件?

来自分类Dev

如何合并两个文件与特定列中的公共字段

来自分类Dev

仅针对某一列的公共值合并两个文本文件

来自分类Dev

通过公共行将两个大文本文件合并为一个映射文件

来自分类Dev

根据公共数据合并两个文件

来自分类Dev

合并两个没有公共列的数据框

来自分类Dev

合并具有两个公共字段的两个文件

来自分类Dev

比较两个不同CSV文件的两列并合并输出

来自分类Dev

需要使用python合并两个具有相同列数但标题不同的csv文件

来自分类Dev

在PYTHON中的两个CSV文件中查找公共区域

Related 相关文章

热门标签

归档