Teradata® Package for Python Function Reference [リリース番号:17.10 リリース日付:2022/4]の翻訳です。
はじめに
PythonでVantageにテーブルを作成しCSVデータをロードする方法を説明します。
ライブラリとしてteradatamlを利用します。
teradatamlはTeradata Vantage用のPythonライブラリです。
データの準備
sklernのIrisデータセットを読み込む
python code
import pandas as pd
from sklearn import datasets
iris = datasets.load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['target'] = iris.target_names[iris.target]
データの中身を確認する
python code
df.head()
sepal length (cm) | sepal width (cm) | petal length (cm) | petal width (cm) | target | |
---|---|---|---|---|---|
0 | 5.1 | 3.5 | 1.4 | 0.2 | setosa |
1 | 4.9 | 3.0 | 1.4 | 0.2 | setosa |
2 | 4.7 | 3.2 | 1.3 | 0.2 | setosa |
3 | 4.6 | 3.1 | 1.5 | 0.2 | setosa |
4 | 5.0 | 3.6 | 1.4 | 0.2 | setosa |
CSVファイルを作成
python code
df.to_csv('iris.csv', index=False)
基本操作 (ここから本編)
Vantageに接続する
python code
# 接続用ライブラリの宣言
import teradataml as tdml
# データベース接続
tdml.create_context(host = "IPアドレス",username='ユーザ名',password='パスワード')
pandas DataFrameにiris.csvを読み込む
python code
# csvファイルをpandas DataFrameへ取り込み、カラム名を変換する。
pd_iris = pd.read_csv('iris.csv')
col = ['sepallength', 'sepalwidth', 'petallength', 'petalwidth', 'target']
pd_iris.columns = col
pandas DataFrameからテーブルを生成する
python code
# Teradata上へテーブルを作成
tdml.copy_to_sql(df = pd_iris, schema_name='ユーザ名', table_name='iris_table',
index=True, index_label='idx', primary_index='idx', if_exists='replace')
テーブルを指定してデータを取得する
# Customerテーブルのデータをteradatamlデータフレームに読み込む
tdml.DataFrame.from_table("iris_table")
結果を表示
sepallength sepalwidth petallength petalwidth target
idx
109 7.2 3.6 6.1 2.5 virginica
118 7.7 2.6 6.9 2.3 virginica
24 4.8 3.4 1.9 0.2 setosa
16 5.4 3.9 1.3 0.4 setosa
72 6.3 2.5 4.9 1.5 versicolor
41 4.5 2.3 1.3 0.3 setosa
45 4.8 3.0 1.4 0.3 setosa
47 4.6 3.2 1.4 0.2 setosa
29 4.7 3.2 1.6 0.2 setosa
145 6.7 3.0 5.2 2.3 virginica
Vantageから切断する
python code
# データベース切断
tdml.remove_context()
おわりに
警告
この本書はTeradata Vantageドキュメンテーションよりトピックに必要な情報を抜粋したものです。掲載内容の正確性・完全性・信頼性・最新性を保証するものではございません。正確な内容については、原本をご参照下さい。
また、修正が必要な箇所や、ご要望についてはコメントをよろしくお願いします。