Объединение файлов Excel с использованием панд и добавление пользовательского столбца приводит к ошибке - PullRequest
0 голосов
/ 10 мая 2018

У меня есть куча файлов Excel, которые я объединяю в CSV-файл. После объединения файлов мне нужно добавить еще несколько столбцов в начале файла CSV (я планирую заполнить эти столбцы, используя параметры, например, GLB_DM_VER для заполнения столбца Global_DM_Version).

Следующий скрипт выдает ошибку:

AttributeError: у объекта 'NoneType' нет атрибута 'to_csv'

Я новичок в Python и буду очень признателен за любую помощь по этому вопросу. Спасибо.

import glob

path= input("Enter the location of files ")

GLB_DM_VER = input("Enter global DM version")

file_list = glob.glob(path+"\*.xls")

excels = [pd.ExcelFile(name) for name in file_list] 

frames = [x.parse(x.sheet_names[2], header=0,index_col=None) for x in excels]

combined = pd.concat(frames)

combined = combined.insert(loc=1, column = 'Global_DM_Version', value = GLB_DM_VER )

combined.to_csv("STAND_2.csv", header=['TARGET_DOMAIN','SOURCE_DOMAIN','DOMAIN_LABEL','SOURCE_VARIABLE','RAVE_LABEL','TYPE','VARIABLE_LENGTH','CONTROL_TYPE','CODELIST_OID','TARGET_VARIABLE','MANDATORY','RAVE_ORIGIN'], index=False)

1 Ответ

0 голосов
/ 10 мая 2018

Это следующая строка:

combined = combined.insert(loc=1, column = 'Global_DM_Version', value = GLB_DM_VER )

Просто напишите это вместо:

combined.insert(loc=1, column = 'Global_DM_Version', value = GLB_DM_VER)

Пояснение: pd.DataFrame.insert не возвращает DataFrame, но изменяет DataFrame на месте. Если функция не возвращает ничего в python, она возвращает None, следовательно, вы видите ошибку, которую видите.

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