Создание CSV-файла из pandas dataframe в соответствии с именами листов в файле из условия по столбцу - PullRequest
1 голос
/ 30 сентября 2019

У меня есть файл Excel, в котором есть несколько листов (6). Я пишу сценарий Python для преобразования каждого отдельного листа в CSV-файл.

Мой входной файл выглядит так, и это, например, имя листа = class5

Name   ID  Result

Mark   11   Pass
Tom    22   Fail
Jane   33   Pass
Colin  44   Not Appeared

, как это у меня естьнесколько листов в excel

Мне нужно преобразовать их в CSV-файл, содержащий только «Имя» и имя листа только для кандидатов «pass» и «fail», а не для кандидатов «not not», как это:

csv file to be created class5.csv which has content just:

Mark,class5
Tom,class5
Jane,class5

Note: No 'colin' as he did not appear

На этом одном листе, как этот, у меня есть несколько листов, поэтому я написал скрипт, который читает Excel и создает CSV-файл имени, класса, но я не могу поставить фильтр из столбца «Результат», так как он не отображается«Не появилось», так как теперь для этого кода у меня есть все «Пройдено», «сбой» и «не появилось»

xls = pd.read_excel('path_of_file',sheet_name = None)
for sheet_name, df in xls.items():
    df['sheet'] = sheet_name
    df[['Name','sheet']].to_csv(f'{sheet_name}.csv', header=False)

Нужно знать, как добавить фильтр в столбец «Результат», чтобы удалить только имя «Не появилось» имени ученика?

1 Ответ

1 голос
/ 30 сентября 2019

Вы можете фильтровать по условию, а также по имени столбца Name с boolean indexing и DataFrame.loc:

xls = pd.read_excel('path_of_file',sheet_name = None)
for sheet_name, df in xls.items():
    df = df.loc[df["Result"] != 'Not Appeared', ['Name']].copy()
    df['sheet'] = sheet_name
    df.to_csv(f'{sheet_name}.csv', header=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...