Python PyTd teradata Query Into Pandas DataFrame

brn*_*792 0 python teradata pandas

我正在使用该PyTd teradata模块从 Teradata 查询数据并希望将其读入 Pandas DataFrame

import teradata
import pandas as pd

# teradata connection
udaExec = teradata.UdaExec(appName="Example", version="1.0",
                           logConsole=False)
session = udaExec.connect(method="odbc", system="", username="", password="")

# Create empty dataframe with column names
query = session.execute("SELECT TOP 1 * FROM table")
cols = [str(d[0]) for d in query.description]
df = pd.DataFrame(columns=cols)

# Read data into dataframe
for row in session.execute("SELECT * FROM table"):
    print type(row)
    df.append(row)
Run Code Online (Sandbox Code Playgroud)

row属于teradata.util.Row class并且不能附加到数据帧。我尝试将其转换为列表,但格式混乱。

如何使用该teradata模块将数据从 Teradata 读入数据帧?我无法为此使用该pyodbc模块。

有没有更好的方法来创建列名与数据库中的列名匹配的空数据框?

Pra*_*iel 5

您可以使用 pandas.read_sql :)

import teradata
import pandas as pd

# teradata connection
udaExec = teradata.UdaExec(appName="Example", version="1.0",
                           logConsole=False)
with udaExec.connect(method="odbc", system="", username="", password="") as session:


    query ="SELECT * FROM table"

    df = pd.read_sql(query,session)
Run Code Online (Sandbox Code Playgroud)

使用 'with' 将确保在查询后关闭会话。我希望有帮助:)