Pandas .to_csv вызывает появление плавающих элементов - PullRequest
0 голосов
/ 04 марта 2020

Я создал программу, которая принимает в листах Excel, изменяет их с помощью Pandas и сохраняет их в CSV.

Когда я проверяю выходной CSV, столбцы отображаются как целые, однако, когда я загрузить в Oracle столбцы становятся числами с плавающей точкой.

Некоторые столбцы во входных данных Excel являются такими, как «3», «4», «1», но другие столбцы содержат фактические значения с плавающей запятой для денежных значений. По этой причине я не могу привести на весь фрейм данных as_type (int).

Число листов Excel исчисляется сотнями, и каждый месяц столбцы имеют разные имена. Таким образом, применение as_type (int) по столбцам не будет работать.

Пример кода:

import pandas as pd
output_location = save_location + '.csv'

df_manipulation = pd.read_excel(filepath, index_col=None)
df_manipulation.to_excel(output_location, index = False)

Есть идеи о том, как сохранить рассматриваемые столбцы в виде целых чисел?

1 Ответ

3 голосов
/ 04 марта 2020

Чтение документации для read_excel (), в частности для параметра convert_float, указывает, что Excel хранит все числа как числа с плавающей точкой.

Если вы хотите преобразовать столбцы из числа с плавающей точкой int вручную вы можете сделать:

df_manipulation['column_name'] = df_manipulation['column_name'].astype('int')

В качестве альтернативы, вы можете загрузить весь лист с указанным c типом данных, таким как строки:

df_manipulation = pd.read_excel(filepath, index_col=None, dtype = str)
...