teradatamlデータフレームで新しいカラムを追加する

[Teradata® Package for Python Function Reference](https://docs.teradata.com/r/Teradata-Package-for-Python-Function-Reference/April-2022) [リリース番号：17.10　リリース日付：2022/4]の翻訳です。

# はじめに
Pythonでteradatamlデータフレームを作成し新しいカラムを追加する方法を説明します。
ライブラリとして[teradataml](https://pypi.org/project/teradataml/)を利用します。

:::note info
**teradataml**はTeradata Vantage用のPythonライブラリです。
:::

# 基本操作
## Vantageに接続する
```python:python code
# 接続用ライブラリの宣言
import teradataml as tdml
# データベース接続
tdml.create_context(host = "IPアドレス",username='ユーザ名',password='パスワード')
```

## テーブルを指定してデータを取得する
```python:python code
# Customerテーブルのデータをteradatamlデータフレームに読み込む
teradataml_iris = tdml.DataFrame.from_table("iris_table")

## データフレームの中身を確認
teradataml_iris
```

<details><summary>結果を表示</summary>

```
     sepallength  sepalwidth  petallength  petalwidth      target
idx                                                              
122          7.7         2.8          6.7         2.0   virginica
116          6.5         3.0          5.5         1.8   virginica
91           6.1         3.0          4.6         1.4  versicolor
143          6.8         3.2          5.9         2.3   virginica
95           5.7         3.0          4.2         1.2  versicolor
11           4.8         3.4          1.6         0.2      setosa
10           5.4         3.7          1.5         0.2      setosa
125          7.2         3.2          6.0         1.8   virginica
35           5.0         3.2          1.2         0.2      setosa
43           5.0         3.5          1.6         0.6      setosa
```
</details>

## 既存のカラムで演算により新しいカラムを作成します。
```python:python code
# データフレームにnew_colと言うカラムを追加します
teradataml_iris2 = teradataml_iris.assign(new_col = teradataml_iris.sepallength * teradataml_iris.sepalwidth)

# データフレームの中身を確認
teradataml_iris2
```

<details><summary>結果を表示</summary>

```
     sepallength  sepalwidth  petallength  petalwidth      target  new_col
idx                                                                       
17           5.1         3.5          1.4         0.3      setosa    17.85
143          6.8         3.2          5.9         2.3   virginica    21.76
0            5.1         3.5          1.4         0.2      setosa    17.85
116          6.5         3.0          5.5         1.8   virginica    19.50
144          6.7         3.3          5.7         2.5   virginica    22.11
11           4.8         3.4          1.6         0.2      setosa    16.32
125          7.2         3.2          6.0         1.8   virginica    23.04
10           5.4         3.7          1.5         0.2      setosa    19.98
74           6.4         2.9          4.3         1.3  versicolor    18.56
97           6.2         2.9          4.3         1.3  versicolor    17.98
```
</details>

## カテゴリ変数を追加する
```python:python code
# setosaカラムを追加する。targetカラムの値が"setosa"の時に1を立てる。
teradataml_iris = teradataml_iris.assign(drop_columns = False, setosa     = teradataml_iris.target.str.contains('setosa'))
# versicolorカラムを追加する。targetカラムの値が"versicolor"の時に1を立てる。
teradataml_iris = teradataml_iris.assign(drop_columns = False, versicolor = teradataml_iris.target.str.contains('versicolor'))
# virginicaカラムを追加する。targetカラムの値が"virginica"の時に1を立てる。
teradataml_iris = teradataml_iris.assign(drop_columns = False, virginica  = teradataml_iris.target.str.contains('virginica'))

# データフレームの中身を確認
teradataml_iris
```

<details><summary>結果を表示</summary>

```
     sepallength  sepalwidth  petallength  petalwidth      target setosa versicolor virginica
idx                                                                                          
101          5.8         2.7          5.1         1.9   virginica      0          0         1
120          6.9         3.2          5.7         2.3   virginica      0          0         1
99           5.7         2.8          4.1         1.3  versicolor      0          1         0
61           5.9         3.0          4.2         1.5  versicolor      0          1         0
19           5.1         3.8          1.5         0.3      setosa      1          0         0
80           5.5         2.4          3.8         1.1  versicolor      0          1         0
59           5.2         2.7          3.9         1.4  versicolor      0          1         0
38           4.4         3.0          1.3         0.2      setosa      1          0         0
40           5.0         3.5          1.3         0.3      setosa      1          0         0
141          6.9         3.1          5.1         2.3   virginica      0          0         1
```
</details>


## Vantageから切断する
```python:python code
# データベース切断
tdml.remove_context()
```

# おわりに
:::note warn
警告
この本書は[Teradata Vantageドキュメンテーション](https://docs.teradata.com/)よりトピックに必要な情報を抜粋したものです。掲載内容の正確性・完全性・信頼性・最新性を保証するものではございません。正確な内容については、原本をご参照下さい。
また、修正が必要な箇所や、ご要望についてはコメントをよろしくお願いします。
:::

## Teradata Vantageへのお問合せ
[Teradata Vantage へのお問合せ](https://www.teradata.jp/About-Us/Contact)