Импортируя несколько файлов Excel в Python, объедините и примените имя файла к новому столбцу - PullRequest
0 голосов
/ 14 марта 2019

У меня есть цикл for, который импортирует все файлы Excel в каталоге и объединяет их в один фрейм данных. Тем не менее, я хочу создать новый столбец, где каждая строка принимает строку имени файла Excel-файла.

Вот мой код импорта и слияния:

path = os.getcwd()
files = os.listdir(path)

df = pd.DataFrame()
for f in files:
    data = pd.read_excel(f, 'Sheet1', header = None, names = ['col1','col2'])
    df = df.append(data)

Например, если первый файл Excel называется «file1.xlsx», я хочу, чтобы все строки в этом файле имели значение file1.xlsx в col3 (новый столбец). Если второй файл Excel называется «file2.xlsx», я хочу, чтобы все строки в этом файле имели значение file2.xlsx. Обратите внимание, что нет никакого реального образца файлов Excel, и я просто использую эти имена в качестве примера.

Большое спасибо

1 Ответ

1 голос
/ 14 марта 2019

Создать новый столбец в цикле:

df = pd.DataFrame()
for f in files:
    data = pd.read_excel(f, 'Sheet1', header = None, names = ['col1','col2'])
    data['col3'] = f
    df = df.append(data)

Другое возможное решение с пониманием списка:

dfs = [pd.read_excel(f, 'Sheet1', header = None, names = ['col1','col2']).assign(col3 = f)
        for f in files]

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