Я хочу извлечь имя файла и нарезать его, чтобы принять участие и поместить эту часть в столбец Excel. И я хочу сделать это для 8 файлов - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь извлечь часть имени файла Excel и добавить его в новый столбец в том же Excel. Я хочу сделать это для 8 файлов.

Я могу выделить часть имени файла, но не могу добавить его в столбец.

import glob
import pandas as pd

output = pd.DataFrame()
for file in glob.glob("*.xlsx"):

    x = file
    slice1, slice2 = 13, 17
    final = [x[slice1:slice2]]
    x['Out'] = final
    output.to_excel("outPut.xlsx", index = False, na_rep = "NA", header=True)

Например:

У меня есть 8 исключений с именем файла "ABC_Alphwise_OUT1", "ABC_Alphwise_OUT2" и так далее. Я хочу нарезать имя файла первым, чтобы получить «OUT1», «OUT2» и так далее.

Затем я хочу, чтобы «OUT1», «OUT2» и т. Д. Были добавлены в столбец «ABC_Alphwise_OUT1», «ABC_Alphwise_OUT2» и т. Д. Соответственно.

Я дал 2вход и выход для выборки.

Входы:

ABC_Alphwise_OUT1: 1-й вход Excel

ABC_Alphwise_OUT2: 2-й ввод Excel

Выходы

ABC_Alphwise_OUT1: 1-й выход Excel

ABC_Alphwise_OUT1: 2-й выход Excel

1 Ответ

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

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

Сначала давайте возьмем file_slice и загрузим файл excel в виде pandas кадра данных. Затем мы получаем количество строк в листе Excel (len(df.index)) и создаем список из file_slice, продублированный столько раз. Затем этот список добавляется к фрейму данных в новом столбце Out. Затем фрейм данных может перезаписать исходный файл Excel.

import glob
import pandas as pd

for file in glob.glob('*.xlsx'):
    file_slice = file[slice1:slice2]
    df = pd.read_excel(file)
    file_slice_list = [file_slice]*len(df.index)
    df['Out'] = pd.Series(file_slice_list).values
    df.to_excel(file, index=False, na_rep = 'NA', header = True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...