Объединение строк из нескольких файлов CSV в один файл CSV с одинаковым количеством столбцов - PullRequest
0 голосов
/ 16 июня 2020

У меня есть 3 файла CSV (разделенных символом ',') без заголовков, и мне нужно объединить их в один файл:

file1.csv

United Kingdom     John

file2.csv

France  Pierre

file3.csv

Italy   Marco

ожидаемый результат:

United Kingdom    John
France            Pierre
Italy             Marco

мой код:

import pandas as pd

df = pd.read_csv('path/to/file1.csv', sep=',')
df1 = pd.read_csv('path/to/file2.csv', sep=',')
df2 = pd.read_csv('path/to/file3.csv', sep=',')

df_combined = pd.concat([df,df1,df2])

df_combined.to_csv('path/to/output.csv')

приведенное выше дает мне объединенные данные, но он добавил строки из моих файлов CSV в качестве новых столбцов и строк, вместо того, чтобы добавить только новые строки к существующим двум столбцам:

United Kingdom     John
                          France     Pierre
                                               Italy    Marco

Может ли кто-нибудь помочь с этим? Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Pandas обычно выводит имя столбца из первой строки при чтении файла CSV. Здесь вы можете проверить заголовок каждого фрейма данных, и вы должны ожидать, что образцы данных будут обрабатываться как заголовок.

Чтобы переопределить это поведение по умолчанию, вы можете использовать поле names для явно укажите имена столбцов, например df1=pd.read_csv("file1.csv", names=['country','name']). Тогда pandas сможет соответствующим образом объединить столбцы.

1 голос
/ 16 июня 2020

Прочтите csv следующим образом

df = pd.read_csv('path/to/file1.csv', sep=',', header=None)
df1 = pd.read_csv('path/to/file2.csv', sep=',', header=None)
df2 = pd.read_csv('path/to/file3.csv', sep=',', header=None)

Вы можете объединить как показано ниже

df.reset_index(inplace=True, drop=True)
df1.reset_index(inplace=True, drop=True)
df2.reset_index(inplace=True, drop=True)
pd.concat([df,df1,df2], axis=0)

вывод, как ожидалось

enter image description here

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