Как получить числовые значения из таблицы Oracle DB как есть в кадре данных pandasPython

Программы на Python
Anonymous
Как получить числовые значения из таблицы Oracle DB как есть в кадре данных pandas

Сообщение Anonymous »

Попытка загрузить числовые значения столбцов из существующей таблицы базы данных Oracle в фрейм данных Pandas, но все числовые значения принимают десятичную часть при экспорте столбцов в CSV-файл, за исключением первого числового столбца.
< р>Пример. tabA — это таблица Oracle, имеющая столбец (col1 varchar2(30), номер col2, номер col3 varchar2(10)....номер col8, номер col9), где значения выглядят так:

Код: Выделить всё

col1  col2   col3...........col8  col9
I1   23451   Sam  ..........2330   5
I2   33467   Jhon...........6672    8
I3   55562   Pamela ........ 2100    8
1-й загружает данные в фрейм данных pandas из oracle с помощью Connectorx.read_sql(), а затем записывает фрейм данных в файл .csv с использованием метода pandas.to_csv и в csv получает следующие данные -
р>

Код: Выделить всё

col1  col2   col3...........col8     col9
I1   23451   Sam  ..........2330.0    5.0
I2   33467   Jhon...........6672.0    8.0
I3   55562   Pamela ........ 2100.0    8.0
где, как и в таблице БД, числовые значения представляют собой целое целое число без десятичной части.
Ожидание: CSV должен выглядеть следующим образом:

Код: Выделить всё

col1  col2   col3...........col8  col9
I1   23451   Sam  ..........2330   5
I2   33467   Jhon...........6672    8
I3   55562   Pamela ........ 2100    8
Я пытался преобразовать все столбцы фрейма данных в строковый тип данных после загрузки данных из Oracle
с помощью pandas.conver_dtypes(infer_objects=False,convert_string=True ), но не сработало.
Пытался определить схему фрейма данных как все столбцы в виде строки перед загрузкой данных из оракула, но это тоже не сработало. Вот мой код sudo -

Код: Выделить всё

import pandas as pd
import connectorx as cx

sql="select * from tabA"

df = cx.read_sql(, sql, return_type ='pandas')
df = df.conver_dtypes(infer_objects=False,convert_string=True)
df.to_csv(, header=True, sep='|',encoding='utf8', mode ='a',quotechar='"', quoting=1)
Есть ли способ получить числовые значения в том виде, в котором они есть, из базы данных без десятичной части с конца Python?
Пытаемся избежать решения преобразования числовые столбцы в запрос sql в виде строки с помощью

Код: Выделить всё

oracle to_char()
функция, например select to_char(col2), ...

Код: Выделить всё

to_char(col8)
из tabA.
Любое решение со стороны Python будет очень полезно.

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

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