Как добавить столбец условно при импорте нескольких CSV - PullRequest
0 голосов
/ 11 февраля 2020

Допустим, у меня есть несколько файлов CSV:

A010119.csv,

A010219.csv,

A010319.csv,

...

A013119.csv.

При импорте всего этого я хочу добавить новый столбец с именем «date», который имеет постоянное значение. Я хочу, чтобы это постоянное значение было датой для каждого файла CSV, где даты указаны в именах каждого файла CSV. Например, «010119» из «A010119.csv», «010219» из «A010219.csv и т. Д.

Я знаю, как объединить все эти файлы, но просто не могу понять, как добавить столбец, основанный на имени файла. Для конкататации использовались следующие коды:

all_files = glob.glob(path + "/*.csv")
all_files

li = []
for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0)
    li.append(df)

concated = pd.concat(li, axis=0, ignore_index=True)

Для иллюстрации, первые три файла выглядят так:

age score
1   2
2   3
3   4
age score
2   3
3   4
4   5
age score
3   4
4   5
5   6

Желаемый результат:

age score   date
1   2      010119
2   3      010119
3   4      010119
2   3      010219
3   4      010219
4   5      010219
3   4      010319
4   5      010319
5   6      010319

1 Ответ

1 голос
/ 11 февраля 2020

Чтобы продолжить на том, что @ AM C предлагал:

for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0)
    df['date'] = function_that_extracts_numeric_string_from_filename(filename)
    li.append(df)

Я оставлю извлечение этой подстроки числительным c до вас. Если вы не можете разобраться, поищите здесь, это довольно распространенный вопрос.

...