Как объединить все CSV-файлы в папке в один CSV-файл по столбцам? - PullRequest
0 голосов
/ 09 октября 2018

Имеется папка с несколькими CSV-файлами с разными длинами столбцов.

Необходимо объединить их в один CSV-файл, используя панд Python с печатью имени файла в виде одного столбца.

Ввод: https://www.dropbox.com/sh/1mbgjtrr6t069w1/AADC3ZrRZf33QBil63m1mxz_a?dl=0

Выход:

Id  Snack      Price    SheetName
5   Orange      55     Sheet1
7   Apple       53     Sheet1
8   Muskmelon   33     Sheet1
11  Orange             Sheet2
12  Green Apple        Sheet2
13  Muskmelon          Sheet2

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете использовать:

files = glob.glob('files/*.csv')
dfs = [pd.read_csv(fp).assign(SheetName=os.path.basename(fp).split('.')[0]) for fp in files]
df = pd.concat(dfs, ignore_index=True)
print (df)
   Id  Price SheetName        Snack
0  11    NaN   Sheet 2       Orange
1  12    NaN   Sheet 2  Green Apple
2  13    NaN   Sheet 2    Muskmelon
3   5   55.0    Sheet1       Orange
4   7   53.0    Sheet1        Apple
5   8   33.0    Sheet1    Muskmelon

РЕДАКТИРОВАТЬ:

dfs = []
for fp in files:
    df = pd.read_csv(fp).assign(SheetName=os.path.basename(fp).split('.')[0])
    #another code
    dfs.append(df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...