Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのlocを使ってPandas DataFrameにリストを追加する方法

Pandas DataFrameにlocでリストを追加する方法

DataFrame.locは、ラベルやブール配列を指定して行・列のグループにアクセスするためのプロパティです。この機能を利用すると、リスト形式のデータを新しい行としてDataFrameの末尾に簡単に追加できます。

本記事では、locを使ってPandas DataFrameにリストを1行追加する手順を、具体的なサンプルコードと実行結果とともに解説します。

1. DataFrameを作成する

まず、チームランキングのデータをリスト形式で用意し、それをもとにDataFrameを作成します。

import pandas as pd

# チームランキングのデータ(リスト形式)
Team = [['India', 1, 100], ['Australia', 2, 85], ['England', 3, 75],
        ['New Zealand', 4, 65], ['South Africa', 5, 50], ['Bangladesh', 6, 40]]

# DataFrameを作成し、カラム名を設定
dataFrame = pd.DataFrame(Team, columns=['Country', 'Rank', 'Points'])

2. 追加する行(リスト)を用意する

次に、DataFrameに追加したい行をリストとして定義します。リストの要素数は、DataFrameのカラム数と一致させている点に注目してください。

# 追加する行のデータ
myList = ["Sri Lanka", 7, 30]

3. locを使って行を追加する

loc[len(dataFrame)]を指定することで、現在の行数と同じインデックス位置、つまりDataFrameの末尾に新しい行を追加できます。

# loc()を使ってリスト形式の行を追加
dataFrame.loc[len(dataFrame)] = myList

完全なサンプルコード

ここまでの手順をすべてまとめたコードが以下です。

import pandas as pd

# チームランキングのデータ(リスト形式)
Team = [['India', 1, 100], ['Australia', 2, 85], ['England', 3, 75],
        ['New Zealand', 4, 65], ['South Africa', 5, 50], ['Bangladesh', 6, 40]]

# DataFrameを作成し、カラム名を設定
dataFrame = pd.DataFrame(Team, columns=['Country', 'Rank', 'Points'])

print("DataFrame...")
print(dataFrame)

# 追加する行のデータ
myList = ["Sri Lanka", 7, 30]

# loc()を使ってリスト形式の行を追加
dataFrame.loc[len(dataFrame)] = myList

# 更新後のDataFrameを表示
print("\nlocを使って行を追加した後のDataFrame...")
print(dataFrame)

実行結果

上記のコードを実行すると、以下のような出力が得られます。「Sri Lanka」の行が正しく末尾に追加されていることが確認できます。

DataFrame...
       Country  Rank  Points
0        India     1     100
1    Australia     2      85
2      England     3      75
3  New Zealand     4      65
4 South Africa     5      50
5   Bangladesh     6      40

locを使って行を追加した後のDataFrame...
       Country  Rank  Points
0        India     1     100
1    Australia     2      85
2      England     3      75
3  New Zealand     4      65
4 South Africa     5      50
5   Bangladesh     6      40
6    Sri Lanka     7      30

ポイントまとめ

  • DataFrame.locは、ラベルベースで行・列にアクセスするためのプロパティです。
  • len(dataFrame)は現在の行数を返すため、loc[len(dataFrame)]と指定すれば常に末尾に新しい行を追加できます。
  • 追加するリストの要素数は、DataFrameのカラム数と一致している必要があります。
  • なお、大量の行をループで繰り返し追加する場合はパフォーマンスが低下するため、その場合はpd.concat()で一括結合するか、最初にリストをまとめてからDataFrame化する方法が推奨されます。
  1. PythonでpandasのDataFrameをCSVファイルに書き込む方法【to_csv()の使い方】

    pandasのDataFrameをCSVファイルに出力する基本 PythonでpandasのDataFrameをCSVファイルに書き込むには、to_csv()メソッドを使用します。このメソッドは、DataFrameの内容をそのままCSV形式で保存できる、最もシンプルで一般的な方法です。 まずはサンプルデータとして、リストを値にもつ辞書を作成しましょう。 # リストの辞書を定義 d = {Car: [BMW, Lexus, Audi, Mercedes, Jaguar, Bentley], Date_of_purchase: [2020-10-10, 2020-10-12, 2020-

  2. Pythonのループでリストに値を追加・代入する方法【append()活用】

    Pythonのループを使ってリストに値を追加する方法 Pythonの組み込みクラスであるlistには、要素を末尾に追加するためのappend()メソッドが用意されています。このメソッドとinput()関数、さらに無限ループ(while True)を組み合わせることで、ユーザーが入力した値を次々とリストに格納することができます。 以下のサンプルコードでは、ユーザーが何も入力せずにEnterキーを押すまで、繰り返し項目の入力を受け付け、その都度リストへ追加していきます。 L = [] while True: item = input(新しい項目を入力してください: ) if ite