Python/Pandas to_csv, сохраняющий как NoneType и вызывающий TypeError
Я пытаюсь создать инструмент загрузки, который берет файл.xls, а затем преобразует его в фрейм данных pandas, прежде чем наконец сохранить его как файл csv для обработки и анализа. После того, как файл выходит из этого кода:
def xls_to_csv(data):
#Formats into pandas dataframe. Index removes first column of .xls file.
formatted_file = pd.read_excel(data, index_col=0)
#Converts the formatted file into a csv file and saves it.
final_file = formatted_file.to_csv('out.csv')
Он сохраняется правильно и в нужном месте, однако, когда я пытаюсь подключить полученный файл к другим функциям, содержащим циклы, я вызываю TypeError: объект NoneType не повторяется.
Файл сохраняется как "out.csv", и я могу открыть его вручную, однако команда open даже не будет работать без этой ошибки.
Использование Python 3.6!
Заранее спасибо!
3 ответа
to_csv
возвращается None
вот почему вы получили эту ошибку для поддержки formatted_file, вы можете попробовать это,
final_file=formatted_file.copy()
или же
final_file=pd.read_csv('out.csv')
def xls_to_csv(data):
# Read the excel file as a dataframe object
formatted_dataframe = pd.read_excel(data, index_col=0)
# Save the dataframe to a csv file in disk. The method returns None.
formatted_file.to_csv('out.csv')
# The dataframe object is still here
final_dataframe = formatted_dataframe
# The final file NAME
final_filename = 'out.csv'
Ваши имена переменных вводят в заблуждение
- Ваш
formatted_file
на самом деле является объектом фрейма данных - Ваш
final_file
: неясно, хотите ли выfilename
или жеthe dataframe
,
Панды to_csv
Функция сохраняет файл, но ничего не возвращает. Чтобы позже просмотреть файл csv, вам нужно изменить код так, чтобы он выглядел следующим образом.
formatted_file.to_csv('out.csv')
final_file = open('out.csv', 'r')