Как создать пользовательский основной кадр данных из папки CSV с Pandas? - PullRequest
2 голосов
/ 08 апреля 2020

У меня есть папка с несколькими файлами CSV. Каждый CSV-файл имеет одинаковые размеры. Все они имеют 2 столбца, и первый столбец каждого одинаков. Есть ли способ импортировать все CSV-файлы и объединить их в один Dataframe, в котором первый файл содержит первый столбец вместе со вторым столбцом, а у последующих файлов просто добавляется второй столбец значений? Заголовок второго столбца для каждого файла уникален, но они имеют одинаковый заголовок первого файла.

Ответы [ 2 ]

4 голосов
/ 08 апреля 2020

Это даст вам комбинацию всех ваших файлов в папке path, где вы можете найти все материалы, связанные с объединением или объединением df, в здесь

Проверьте все виды комбинаций для df (CSV, который вы читаете как df)

import pandas as pd
import os
path='path to folder'
all_files=os.listdir(path)
li = []
for filename in all_files:
    df = pd.read_csv(path+filename, index_col='H1')
    print(df)
    li.append(df)
frame = pd.concat(li, axis=1, ignore_index=False)

frame.to_csv(path+'out.csv')
print(frame)

входные файлы имеют вид:

File1
+----+----+
| H1 | H2 |
+----+----+
|  1 | A  |
|  2 | B  |
|  3 | C  |
+----+----+
File2:
+----+----+
| H1 | H2 |
+----+----+
|  1 | D  |
|  2 | E  |
|  3 | F  |
+----+----+
File13:
+----+----+
| H1 | H2 |
+----+----+
|  1 | G  |
|  2 | H  |
|  3 | I  |
+----+----+

Вывод: (сохранен в out.csv файле в том же каталоге)

+----+----+----+----+
| H1 | H2 | H2 | H2 |
+----+----+----+----+
|  1 | A  | D  | G  |
|  2 | B  | E  | H  |
|  3 | C  | F  | I  |
+----+----+----+----+
1 голос
/ 09 апреля 2020

Вот как я буду действовать. Я предполагаю, что в папке присутствуют только CSV-файлы.

import os
import pandas as pd

files = os.listdir("path_of_the_folder")
dfs = [pd.read_csv(file).set_index('col1') for file in files]
df_final = dfs[0].join(dfs[1:])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...