Skip to content
チュートリアル
Pandas
Pandas DataFrame に行を追加する: ステップバイステップガイド

Pandas DataFrame に行を追加する: ステップバイステップガイド

データ分析や機械学習のプロジェクトでは、しばしば Pandas DataFrame に新しい観測値を追加する必要があります。調査データ、センサー読み取りデータ、ユーザーの行動ログなどを扱っている場合、既存の DataFrame に効率的に新しい行を追加できる必要があります。Python の人気のあるデータ操作ライブラリである Pandas は、DataFrame に行を追加するためのいくつかのメソッドを提供しています。このチュートリアルでは、.loc.append.concat の3つのメソッドを探索します。さあ、始めましょう。

Python で簡単にデータ可視化を行いたいですか?

PyGWalker はオープンソースの Python プロジェクトで、Jupyter Notebook ベースの環境内でのデータ分析と可視化のワークフローを迅速化するのに役立ちます。 Pandas Dataframe (または Polars Dataframe)をビジュアル UI に変換し、簡単にグラフを作成するために変数をドラッグアンドドロップすることができます。 以下のコードを使用してください:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

こちらの Kaggle ノートブックで PyGWalker を実行 (opens in a new tab) | こちらの Google Colab で PyGWalker を実行 (opens in a new tab) | PyGWalker に ⭐️ を付ける (opens in a new tab) | |:---:|:---:|:---:| | Run PyGWalker in Kaggle Notebook (opens in a new tab) | Run PyGWalker in Google Colab (opens in a new tab) | Run PyGWalker in Google Colab (opens in a new tab) |

.loc メソッドを使用して行を追加する

Pandas の .loc メソッドを使用すると、ラベルに基づいて DataFrame のサブセットを選択できます。また、新しい行を DataFrame に追加することもできます。方法は以下のとおりです。

import pandas as pd
 
# サンプルの DataFrame の作成
df = pd.DataFrame({
   'Name': ['John', 'Sara', 'Tim'],
   'Age': [25, 34, 41],
   'City': ['New York', 'London', 'Paris']
})
 
# .loc を使用して新しい行を追加
df.loc[3] = ['Anna', 29, 'Berlin']
 
print(df)

上記のコードでは、最初に3行3列のデータフレームdfを作成します。次に、.locメソッドを使用して行インデックスを3に指定し、最後に新しい行の値のリストを指定します。

出力:

   Name  Age       City
0  John   25   New York
1  Sara   34     London
2   Tim   41      Paris
3  Anna   29     Berlin

新しい行の行インデックスが3であることに注意してください。これは、データフレームの最後の行の後に追加されることを意味します。また、行ラベルを指定して特定の場所に行を挿入するには.locを使用することもできます。たとえば、データフレームの2番目の行の後に新しい行を挿入する場合は、次のように行います。

# inserting a new row after the second row
df.loc[2.5] = ['Peter', 37, 'Los Angeles']
 
print(df)

出力:

    Name   Age         City
0   John    25     New York
1   Sara    34       London
2    Tim    41        Paris
2.5 Peter   37  Los Angeles
3   Anna    29       Berlin

ここでは、ラベル2の後に新しい行を挿入するために2.5というラベルを使用しています。Pandasは、行ラベルを昇順に保つために、自動的に行ラベルの並べ替えを行います。

.appendメソッドを使用した行の追加

Pandasの.appendメソッドを使用すると、2つのデータフレームを垂直に連結することができます。.appendメソッドに単一の行を持つデータフレームを渡すことで、新しい行をデータフレームに追加することができます。例を見てみましょう。

# creating a new row as a dataframe
new_row = pd.DataFrame({
   'Name': ['Julia'],
   'Age': [31],
   'City': ['Tokyo']
})
 
# using .append to add the new row
df = df.append(new_row, ignore_index=True)
 
print(df)

出力:

    Name   Age        City
0   John    25    New York
1   Sara    34      London
2    Tim    41       Paris
3   Anna    29      Berlin
4  Julia    31       Tokyo
## .append メソッドを使用して単一行を追加する
 
上記のコードでは、最初に単一行のデータを持つ新しい DataFrame `new_row` を作成します。それから `.append` メソッドを使用し、引数に `new_row` を渡します。`ignore_index=True` パラメータは Pandas に新しい DataFrame を 0 から 4 まで再インデックスするよう指示します。
 
## .concat メソッドを使用して複数の行を追加する
 
Pandas の `.concat` メソッドを使用すると、指定された軸に沿って2つの DataFrameを連結できます。`.concat` メソッドに DataFrame のリストを渡すことで、複数の行を DataFrame に追加することができます。これが `.concat` を使用して DataFrame `df` に2行を追加する方法です。
 
```python
# 2つの新しい DataFrame を作成します
new_rows = [pd.DataFrame({
   'Name': ['Maria', 'Adam'],
   'Age': [27, 45],
   'City': ['Sydney', 'Toronto']}), 
]
 
# .concat を使用して新しい行を追加します
df = pd.concat([df] + new_rows, ignore_index=True)
 
print(df)

出力:

    Name   Age        City
0   John    25    New York
1   Sara    34      London
2    Tim    41       Paris
3   Anna    29      Berlin
4  Maria    27      Sydney
5   Adam    45     Toronto

上記のコードでは、まず2つの新しい DataFrame new_rows を作成します。その後、df と共に .concat メソッドにリストとして渡します。ignore_index=True パラメータは、インデックスを 0 から 5 まで再順序付けします。

結論

このチュートリアルでは、PythonのPandas DataFrameに新しい行を追加するために3つの異なる方法、.loc.append、および.concatを探索しました。状況に応じて、それぞれのメソッドには利点と欠点があります。.loc メソッドは、特定の場所に単一行を追加したい場合に便利です。.append メソッドは DataFrame の末尾に単一行を簡単に追加する方法です。.concat メソッドは、一度に複数の行を追加する場合に最適です。これらの方法を知っていると、データ分析や機械学習プロジェクトにおいて、効率的にかつ効果的に DataFrame を操作することができます。Happy coding!