read_excel во фрейм данных и сохранить имя файла в виде столбца (Pandas) - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь прочитать несколько файлов Excel в фрейм данных, но не могу найти способ сохранить имя файла в качестве столбца, чтобы сослаться на источник его происхождения.Кроме того, мне нужно отфильтровать имя файла Excel и дату, созданную, прежде чем я сделаю read_excel.(файлов так много, что я не хочу их читать, если мне это не нужно) Вот что у меня есть:

res = []
for root, dirs, files in os.walk('.../Minutes/', topdown=True):
    if len(files) > 0:
        res.extend(zip([root]*len(files), files))

df = pd.DataFrame(res, columns=['Path', 'File_Name'])

df['FullDir'] = df.Path+'\\'+df.File_Name

list_ = []
for f in df["FullDir"]:
    data = pd.read_excel(f, sheet_name = 1)
    list_.append(data)
    df2 = pd.concat(list_)

df2

Что я хотел бы получить в качестве вывода

   A  B  filename  File Date Created
0  a  a  File1     1-1-2018
1  b  b  File1     1-1-2018
2  c  c  FIle2     2-1-2018
3  a  a  File2     2-1-2018

Любая помощь будет принята с благодарностью !!

1 Ответ

0 голосов
/ 03 июня 2018

Вы можете использовать concat с keys, затем reset_index

res = []
for root, dirs, files in os.walk('.../Minutes/', topdown=True):
    if len(files) > 0:
        res.extend(zip([root]*len(files), files))

df = pd.DataFrame(res, columns=['Path', 'File_Name'])

df['FullDir'] = df.Path+'\\'+df.File_Name

Предполагая, что приведенный выше код работает как ожидалось

list_ = []
for f in df["FullDir"]:
    data = pd.read_excel(f, sheet_name = 1)
    list_.append(data)

df2 = pd.concat(list_, keys=df.File_Name.values.tolist()).reset_index(level=0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...