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

【Python入門】append()でPandas DataFrameにリストを追加する方法

PythonのPandasライブラリでは、append()メソッドを使うことで、既存のDataFrameにリスト形式の新しい行を簡単に追加できます。この記事では、チームランキングのデータを例に、具体的な手順をわかりやすく解説します。

1. 元となるDataFrameを作成する

まず、国名・順位・ポイントからなるチームランキングのデータをリストとして定義し、それをもとにDataFrameを作成します。列名はcolumns引数で指定します。

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

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

2. 追加したい行(リスト)を準備する

次に、DataFrameに追加したい行をリスト形式で用意します。ここでは「スリランカ」のデータを追加してみましょう。

myList = [["Sri Lanka", 6, 40]]

3. append()で行を追加する

append()メソッドを使って、上記のリストを新しい行として追加します。追加する際は、リストを一度pd.DataFrame()でDataFrameに変換してから渡すのがポイントです。また、ignore_index=Trueを指定すると、インデックスが自動的に振り直され、重複を避けられます。

dataFrame = dataFrame.append(pd.DataFrame(myList, columns=['Country', 'Rank', 'Points']), ignore_index=True)

サンプルコード全体

以下が一連の流れをまとめた完全なコード例です。

import pandas as pd

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

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

print("DataFrame...\n", dataFrame)

# 追加する行
myList = [["Sri Lanka", 6, 40]]

# リスト形式の行をappend()で追加
dataFrame = dataFrame.append(pd.DataFrame(myList, columns=['Country', 'Rank', 'Points']), ignore_index=True)

# 更新後のDataFrameを表示
print("\n行を追加した後の更新済みDataFrame...\n", dataFrame)

実行結果

このコードを実行すると、以下のような出力が得られます。最後にスリランカの行が正しく追加されていることが確認できます。

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

行を追加した後の更新済み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    Sri Lanka     6      40

注意点:append()は非推奨(Pandas 2.0以降で削除)

DataFrame.append()はPandas 1.4.0で非推奨となり、Pandas 2.0以降では削除されています。最新バージョンのPandasを使用している場合は、代わりにpd.concat()を使うのが推奨される方法です。

# pd.concat()を使った代替方法
new_row = pd.DataFrame([["Sri Lanka", 6, 40]], columns=['Country', 'Rank', 'Points'])
dataFrame = pd.concat([dataFrame, new_row], ignore_index=True)

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のタプルに要素を追加する方法【リスト変換と連結のテクニック】

    Pythonのタプルは変更不可(イミュータブル)なオブジェクト Pythonのタプル(tuple)はイミュータブル(変更不可)なオブジェクトです。そのため、append()のような要素を追加・変更しようとする操作は許されず、直接実行するとエラーが発生します。 しかし、一度タプルをリストに変換して操作した後、再びタプルへ戻すという方法を使えば、結果的に「タプルへ要素を追加した状態」を実現できます。 タプルへの要素追加の手順 具体的には、以下の2つの組み込み関数を使用します。 list(): タプルをリストに変換する tuple(): リストをタプルに変換する まず list() 関数でタプ