Как я могу вставить значение имени файла в новый столбец в python dataframe? - PullRequest
1 голос
/ 18 октября 2019

Мне нужно объединить несколько файлов CSV, при этом я хочу добавить имя файла каждого файла CSV в столбец.

Я пытаюсь использовать glob или pandas, но, похоже, это не работает.

files = glob.glob('fp')
    print (files)
    x1 = pd.concat([pd.read_csv('fp').assign(New=os.path.basename('fp')) for 'fp' in files])

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Вы близки, необходимо изменить 'fp' на fp, а также при необходимости убрать затраты добавить .split('.')[0]:

dfs = [pd.read_csv(fp).assign(New=os.path.basename(fp).split('.')[0]) for fp in files]

x1 = pd.concat(dfs, ignore_index=True)
0 голосов
/ 18 октября 2019

Вам нужно сделать следующее, чтобы добавить имена файлов в фрейм данных:

import pandas as pd

x1 = pd.DataFrame({"Name": ["A", "B", "C", "D"], "Salary": [1, 2, 3, 4]})  # was read from file named ONE
x1["FileName"] = "ONE"  # add file name column
print(x1)

x2 = pd.DataFrame({"Name": ["E", "F"], "Salary": [8, 99]})  # was read from file named TWO
x2["FileName"] = "TWO"
print(x2)

result = pd.concat([x1, x2], ignore_index=True)  # concat two dataframes and reset index or rows
print(result)

Надеюсь, это было полезно, не стесняйтесь задавать вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...