у меня есть 100 файлов CSV с одинаковым числом столбцов (разным количеством строк) в следующей схеме:Объединить данные из CSV файлов
Файлы 1:
A1,B1,C1
A2,B2,C2
A3,B3,C3
A4,B4,C4
Файл 2:
*A1*,*B1*,*C1*
*A2*,*B2*,*C2*
*A3*,*B3*,*C3*
Файл ...
Выход:
A1+*A1*+...,B1+*B1*+...,C1+*C1*+...
A2+*A2*+...,B2+*B2*+...,C2+*C2*+...
A3+*A3*+...,B3+*B3*+...,C3+*C3*+...
A4+... ,B4+... ,C4+...
Например:
Files 1:
1,0,0
1,0,1
1,0,0
0,1,0
Files 2:
1,1,0
1,1,1
0,1,0
Выход:
2,1,0
2,1,2
1,1,0
0,1,0
Я действительно ломать голову о том, как решить это ... Может ли любой b Ой, дайте мне совет?
Спасибо и наилучшие пожелания, Джулиан
Edit: Я хочу поблагодарить «pepr» много для его очень подробно ответа, но я хотел бы найти решение с помощью панд, как было предложено «furas» , Я нашел способ, чтобы создать переменные для всех моих файлов, как это:
dic={}
for i in range(14253,14352):
try:
dic['df_{0}'.format(i)]=pandas.read_csv('output_'+str(i)+'.csv')
except:
pass
но если я пытаюсь предложенный
df1['column_A'] += df2['column_*A*']
Потому что у меня есть 100 файлов в моем случае она должна была бы быть что-то вроде
for residue in residues:
for number in range(14254,14255):
df=dic['df_14253'][residue]
df+=dic['df_'+str(number)][residue]
у меня есть проблема, что мои файлы имеют разное количество строк и не только суммируются до последней строки df1. Как я могу это решить? Я думаю, что groupby.sum by panda может быть вариантом, но я не понимаю, как его использовать.
PS: Остатки - это список, содержащий все заголовки столбцов.
Я надеваю я не знаю, как начать ... Я думал, что, возможно, я мог бы обрабатывать его как матрицу, а затем использовать некоторую библиотеку numpy. Чтобы читать каждый файл по строкам, а затем добавление данных кажется слишком сложным/unpythonish для меня ... Я надеялся, что для модуля csv будет такая возможность. – Julian