Как объединить все CSV в каталоге, добавив имя CSV в виде столбца с Python - PullRequest
0 голосов
/ 27 апреля 2018
  • У меня есть папка с около 100 CSV (Downloads/challenges).
  • Каждый CSV имеет одинаковые 50+ столбцов.
  • Каждый CSV называется что-то вроде azerbaijan_challenge_entrants.csv.

Я хочу создать один новый CSV (all_entrants.csv), который включает все данные из всех 100 CSV, добавив один новый столбец: challenge, который должен включать имя CSV, из которого поступили данные строки.

Мне обычно нравится Python для подобных задач. Но я изо всех сил стараюсь сделать эту работу. Любая помощь будет оценена!

1 Ответ

0 голосов
/ 27 апреля 2018

Это возможно с os из стандартной библиотеки и сторонней библиотеки pandas:

import os
import pandas as pd

mypath = os.path.join('Downloads', 'challenges')

# get list of files
files = [f for f in os.listdir(mypath) if os.path.isfile(os.path.join(mypath, f))]

# build list of dataframes, adding "challenge" column
dfs = [pd.read_csv(os.path.join(mypath, f)).assign(challenge=f) for f in files]

# concatenate dataframes into one
df = pd.concat(dfs, ignore_index=True)

# write to csv
df.to_csv('all_entrants.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...