Получить список файлов, как вы хотите.Я не знаю, есть ли у вас другие .csv
файлы в этом каталоге, поэтому измените, если необходимо.
Ключ здесь в том, что вы хотите установить name
в качестве индекса, таким образом pd.concat
использует это для выравнивания DataFrames
, когда вы присоединяетесь к ним.Вы можете использовать regex
для получения номеров файлов, а затем добавить это к имени столбца.
import os
import re
import pandas as pd
path = 'define_your_path'
files = [x for x in os.listdir(path) if '.csv' in x]
#['file_1.csv', 'file_2.csv']
lst = []
for f in files:
lst.append(pd.read_csv(path+f)
.set_index('name')
.add_suffix(re.search('.*_(.*)\.', f).group(1)))
big_df = pd.concat(lst, axis=1, sort=False)
Вывод: big_df
num1 num2
Ab 8.0 23.0
Dd 9.0 3.0
Cc 20.0 NaN
Kk 69.0 20.0
Jj NaN 30.0
Входные данные:
file_1.csv:
name,num
Ab,8
Dd,9
Cc,20
Kk,69
file_2.csv:
name,num
Ab,23
Dd,3
Kk,20
Jj,30