はじめに
このチュートリアルでは、Python Pandas の append() メソッドの使い方を学びます。append() メソッドを使うと、1 つの DataFrame の行を別の DataFrame に追加でき、新しい DataFrame オブジェクトが返されます。追加する DataFrame にある列が呼び出し元の DataFrame にまだ存在しない場合、それらの列も追加できます。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。
Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
2 つの DataFrame を作成する
まず、このチュートリアルの例で使用する 2 つの DataFrame を作成する必要があります。
import pandas as pd
## DataFrame 1 を作成する
df1 = pd.DataFrame([['Abhishek', 100, 'Science', 90],
['Anurag', 101, 'Science', 85]],
columns=['Name', 'Roll No', 'Subject', 'Marks'])
## DataFrame 2 を作成する
df2 = pd.DataFrame([['Chetan', 103, 'Maths', 75],
['Divya', 104, 'Science', 80],
['Diya', 105, 'Maths', 92]],
columns=['Name', 'Roll No', 'Subject', 'Marks'])
append() メソッドを使って行を追加する
append() メソッドを使って、1 つの DataFrame に別の DataFrame を追加することができます。これを行うには、追加先の DataFrame で append() メソッドを呼び出し、追加する DataFrame をパラメータとして渡します。
## DataFrame 2 を DataFrame 1 に追加する
appended_df = df1.append(df2)
## 結果を表示する
print(appended_df)
重複するインデックス値を避ける
1 つの DataFrame を別の DataFrame に追加すると、インデックス値が重複する場合があります。これを避けるには、ignore_index パラメータを True に設定することができます。これにより、追加された DataFrame に新しいインデックス値が再割り当てされます。
## ignore_index パラメータを True に設定して DataFrame 2 を DataFrame 1 に追加する
appended_df = df1.append(df2, ignore_index=True)
## 結果を表示する
print(appended_df)
重複するインデックス値を防止する
インデックス値が重複した場合にエラーを発生させたい場合は、verify_integrity パラメータを True に設定できます。
## verify_integrity パラメータを True に設定して DataFrame 2 を DataFrame 1 に追加する
try:
appended_df = df1.append(df2, verify_integrity=True)
except ValueError as e:
print(e)
Series から行を追加する
Series として表される単一の行を DataFrame に追加することもできます。これを行うには、行の値とインデックスを持つ Series オブジェクトを作成し、その後、Series をパラメータとして DataFrame の append() メソッドを呼び出します。
## Series を作成する
series = pd.Series(['Chetan', 103, 'Maths', 75], index=['Name', 'Roll No', 'Subject', 'Marks'])
## Series を DataFrame 1 に追加する
appended_df = df1.append(series, ignore_index=True)
## 結果を表示する
print(appended_df)
辞書から行を追加する
辞書として表される行を DataFrame に追加することもできます。これを行うには、列名をキーとし、行の値を値とする辞書を作成し、その後、辞書をパラメータとして DataFrame の append() メソッドを呼び出します。
## 辞書を作成する
dictionary = {'Name': 'Chetan', 'Roll No': 103, 'Subject': 'Maths', 'Marks': 75}
## 辞書を DataFrame 1 に追加する
appended_df = df1.append(dictionary, ignore_index=True)
## 結果を表示する
print(appended_df)
まとめ
このチュートリアルでは、Python Pandas の append() メソッドの使い方を学びました。このメソッドを使って、1 つの DataFrame の行を別の DataFrame に追加するだけでなく、追加する DataFrame の列が呼び出し元の DataFrame にまだ存在しない場合には、それらの列も追加できます。ignore_index や verify_integrity などの適切なパラメータを使って、追加操作の動作を制御することを忘れないでください。このメソッドを使えば、データ分析タスクで DataFrame を簡単に結合して操作できます。楽しいコーディングを!