首页 > 解决方案 > KeyError:“record_id”用于在 record_id 上合并 CSV

问题描述

我正在尝试将 7 个 .csv 文件合并为 1 个。我已经解决了大部分错误,但现在出现了 KeyError:'record_id'。我是一个初学者,我真的只是在这一部分工作中使用 Python。

我已经成功地为 excel 中的类似数据样本完成了此操作,但所有工作表都在一个文件中。现在我有一个完整的数据集,它以 7 个单独的 csv 文件提供给我。

我正在展示一个缩短的版本,其中前两个文件的初始合并:

import io as io
from io import StringIO
import pandas as pd
import numpy as np
import os, collections, csv
from os.path import basename

df = []


f0 = r'C:\PythonWorking\xxxData\SYLK_fix\FeMRExportDataFile0.csv'
f1 = r'C:\PythonWorking\xxxData\SYLK_fix\FeMRExportDataFile1.csv'


data_0 = pd.read_csv((io.StringIO(f0)))
data_1 = pd.read_csv((io.StringIO(f1)))


df = pd.merge(data_0, data_1, on='record_id', how='outer')

Final_csv = r'C:\PythonWorking\xxxData\SYLK_fix\FeMRExportDataFile0_6Merged.csv'

df.to_csv(Final_csv)

exit(0)

错误信息:

PS C:\Users\xxxx> & C:/Users/xxxx/AppData/Local/Programs/Python/Python37-32/python.exe c:/PythonWorking/xxxData/SampleNIJJoin_V4_CSVs.py
Traceback (most recent call last):
  File "c:/PythonWorking/xxxhData/SampleNIJJoin_V4_CSVs.py", line 32, in <module>
    df = pd.merge(data_0, data_1, on='record_id', how='outer')
  File "C:\Users\xxxx\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\reshape\merge.py", line 81, in merge
    validate=validate,
  File "C:\Users\xxxx\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\reshape\merge.py", line 626, in __init__
    ) = self._get_merge_keys()
  File "C:\Users\xxxx\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\reshape\merge.py", line 975, in _get_merge_keys
    right_keys.append(right._get_label_or_level_values(rk))
  File "C:\Users\xxxx\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\generic.py", line 1774, in _get_label_or_level_values
    raise KeyError(key)
KeyError: 'record_id'

我希望输出给我一个 csv,它是在 record_id 上加入的所有变量的左连接。

数据的小样本:当我完成时,列(变量)将加起来超过 800 个。 请参阅数据示例图像

标签: pythonpandaspython-3.7

解决方案


推荐阅读