Pandas Convert_dtypes(infer_objects=Fals, Convert_string=True) преобразует числовые данные в строку только для первого вPython

Программы на Python
Anonymous
Pandas Convert_dtypes(infer_objects=Fals, Convert_string=True) преобразует числовые данные в строку только для первого в

Сообщение Anonymous »

Я пытаюсь загрузить данные из таблицы базы данных Oracle в фрейм данных pandas в строковом формате, где в моей таблице много полей NUMBER, содержащих данные без десятичных знаков.
ex. tableA (col1 varchar2(30), номер col2, col3, varchar2(12).... номер col8, номер col9)
загрузка этих данных tableA в кадр данных pandas с помощью следующего кода, а затем пытаюсь преобразовать все в строковый тип данных -
import connectorx as cx
import pandas as pd

sql_qry= "select col1,col2,...col9 from tableA"

df = cx.read_sql(, sql_qry, return_type = 'pandas')

df = df.convert_ctypes(infer_objects=False, convert_string=True)

df.to_csv(, header=True, sep='|',index=False, mode='a', encoding='utf8',quotechar='"')

Теперь в CSV-файле значения col2 представлены как целое целое число без десятичной точки, но значения всех других числовых столбцов имеют десятичную точку, тогда как в базе данных они имеют только целые целые значения.
p>
вывод выглядит так -
"col1","col2","col3",........."col8","col9"
"John","12532","A56"................"210008.0","315.0"
"Sam","16435","B5F",............"384.0","315.0"
"Vipin","67453","BG4",..........."4558.0","4675.0"

только значения col2 поступают без десятичной части, и хотя col8 и col9 в БД имеют целые целые значения без десятичной части, но в csv они идут с десятичной частью.
Есть ли способ получить эти числовые значения из базы данных?
Попробовал следующее -
import connectorx as cx
import pandas as pd

sql_qry= "select col1,col2,...col9 from tableA"

df = cx.read_sql(, sql_qry, return_type = 'pandas')

df = df.convert_ctypes(infer_objects=False, convert_string=True)

df.to_csv(, header=True, sep='|',index=False, mode='a', encoding='utf8',quotechar='"')

Теперь в CSV-файле значения col2 представлены как целое целое число без десятичной точки, но значения всех других числовых столбцов имеют десятичную точку, тогда как в базе данных они имеют только целые целые значения.
p>
вывод выглядит так -
"col1","col2","col3",........."col8","col9"
"John","12532","A56"................"210008.0","315.0"
"Sam","16435","B5F",............"384.0","315.0"
"Vipin","67453","BG4",..........."4558.0","4675.0"

Expected is following -

"col1","col2","col3",........."col8","col9"
"John","12532","A56"................"210008","315"
"Sam","16435","B5F",............"384","315"
"Vipin","67453","BG4",..........."4558","4675"


Подробнее здесь: https://stackoverflow.com/questions/790 ... ing-numeri

Вернуться в «Python»