I имеет несколько CSV-файлов (каждый файл содержит N номеров строк (например, 1000 строк) и 43 столбца) .
Я хотел бы прочитать несколько CSV-файлов из папки в панды и объединить их в один DataFrame.
Я не смог понять это.
Проблема заключается в том, что окончательный вывод DataFrame (т. Е. frame = pd.concat(li, axis=0, ignore_index=True)
) объединяет все столбцы (т. Е. 43 столбца ) в один столбец (см. прикрепленное изображение) Снимок экрана с кодом
пример выбранных строк и столбцов (файл один)
Client_ID Client_Name Pointer_of_Bins Date Weight
C0000001 POLYGONE TI006093 12/03/2019 0.5
C0000001 POLYGONE TI006093 12/03/2019 0.6
C0000001 POLYGONE TI006093 12/03/2019 1.4
C0000001 POLYGONE TI006897 14/03/2019 2.9
пример выбранногостроки и столбцы (файл два) Client_ID Client_Name Pointer_of_Bins Дата Вес C0000001 POLYGONE TI006093 22/04/2019 1,5 C0000001 ALDI TI006098 22/04/2019 0,7 C0000001 ALDI TI006098 22/04/2019 2,4 C0000001 ALDI TI006898 24/04/2019 1.4*
Ожидаемые результаты будут выглядеть следующим образом (объединение нескольких файлов, которые могут содержать тысячи строк и несколько столбцов, поскольку прикрепленные данные являются лишь примером, тогда как фактические файлы CSV могут содержать тысячи строк и более 45 столбцовв каждом файле)
Client_ID Client_Name Pointer_of_Bins Date Weight
C0000001 POLYGONE TI006093 12/03/2019 0.5
C0000001 POLYGONE TI006093 12/03/2019 0.6
C0000001 POLYGONE TI006093 12/03/2019 1.4
C0000001 POLYGONE TI006897 14/03/2019 2.9
C0000001 POLYGONE TI006093 22/04/2019 1.5
C0000001 ALDI TI006098 22/04/2019 0.7
C0000001 ALDI TI006098 22/04/2019 2.4
C0000001 ALDI TI006898 24/04/2019 1.9
TO Чтобы загрузить два файла CSV, нажмите здесь (фиктивные данные
Вот что я сделал до сих пор:
import pandas as pd
import glob
path = r'C:\Users\alnaffakh\Desktop\doc\Data\data2\Test'
all_files = glob.glob(path + "/*.csv")
li = []
for filename in all_files:
df = pd.read_csv(filename, sep='delimiter', index_col=None, header=0)
# df = pd.read_csv(filename, sep='\t', index_col=None, header=0)
li.append(df)
frame = pd.concat(li, axis=0, ignore_index=True)