Импорт данных из Oracle в Pandas DataFrame: подробное руководство с примерами кода

Вы хотите импортировать данные из базы данных Oracle в DataFrame Pandas с помощью CX_Oracle? Не смотрите дальше! В этой статье мы познакомим вас с несколькими способами выполнения этой задачи, предоставив понятные объяснения и примеры кода.

Метод 1: использование SQL-запроса
Самый простой способ импортировать данные из Oracle в DataFrame Pandas — выполнить SQL-запрос. Вот пример:

import cx_Oracle
import pandas as pd
# Establish a connection to the Oracle database
connection = cx_Oracle.connect('username/password@host:port/service_name')
# Create a cursor
cursor = connection.cursor()
# Execute the SQL query
cursor.execute('SELECT * FROM your_table')
# Fetch all the rows from the result set
rows = cursor.fetchall()
# Get the column names
columns = [col[0] for col in cursor.description]
# Create the Pandas DataFrame
df = pd.DataFrame(rows, columns=columns)
# Close the cursor and connection
cursor.close()
connection.close()
# Print the DataFrame
print(df)

Метод 2: использование функции read_sql()Pandas.
Pandas предоставляет удобную функцию read_sql(), которая позволяет выполнить запрос SQL и напрямую импортировать результат в DataFrame.. Вот как вы можете его использовать:

import cx_Oracle
import pandas as pd
# Establish a connection to the Oracle database
connection = cx_Oracle.connect('username/password@host:port/service_name')
# Define your SQL query
query = 'SELECT * FROM your_table'
# Use the read_sql() function to import data into a DataFrame
df = pd.read_sql(query, connection)
# Close the connection
connection.close()
# Print the DataFrame
print(df)

Метод 3: получение данных частями
Если вы имеете дело с большим набором данных, возможно, более эффективно получать данные частями, а не все сразу. Этого можно добиться, используя метод курсора fetchmany(). Вот пример:

import cx_Oracle
import pandas as pd
# Establish a connection to the Oracle database
connection = cx_Oracle.connect('username/password@host:port/service_name')
# Create a cursor
cursor = connection.cursor()
# Execute the SQL query
cursor.execute('SELECT * FROM your_table')
# Fetch a specified number of rows at a time
chunk_size = 1000
chunks = []
while True:
    rows = cursor.fetchmany(chunk_size)
    if not rows:
        break
    chunks.append(rows)
# Get the column names
columns = [col[0] for col in cursor.description]
# Create the Pandas DataFrame
df = pd.DataFrame([item for chunk in chunks for item in chunk], columns=columns)
# Close the cursor and connection
cursor.close()
connection.close()
# Print the DataFrame
print(df)

Это всего лишь несколько способов импорта данных из Oracle в DataFrame Pandas с использованием CX_Oracle. Вы можете выбрать метод, который лучше всего соответствует вашим потребностям, исходя из размера вашего набора данных и требуемого уровня контроля. Удачного импорта данных!