KeyError: 'record_id' для слияния CSV с record_id - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь объединить 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, когда я закончу. См. Пример данных изображения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...