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

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

ilocメソッドとは

ilocは、Pandasにおいて行や列の「整数位置」に基づいてデータを選択するためのインデックス参照メソッドです。このilocを利用することで、既存のDataFrameに対してリスト形式の新しい行を追加(上書き)することができます。

本記事では、ilocを使って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'])

このコードでは、「Country(国名)」「Rank(順位)」「Points(ポイント)」の3つの列を持つDataFrameが生成されます。

追加する行の定義

次に、DataFrameに追加したい行をリストとして定義します。

myList = ["Sri Lanka", 7, 30]

ilocで行を追加する方法

iloc()を使えば、定義したリストを指定した位置の行に割り当てることができます。

dataFrame.iloc[5] = myList

iloc[5]と指定すると、インデックス5(6番目の行)が新しい行で置き換えられます。つまり、元々「Bangladesh」だった行が「Sri Lanka」のデータに更新されます。

ポイント: ilocによる代入は、既存の行を上書きする動作になります。DataFrameの末尾に完全な新規行として追加したい場合は、pd.concat()locを使う方法が適しています。

完全なコード例

以下に、ここまでの手順をまとめた完全なコードを示します。

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...\n", dataFrame)

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

# iloc()を使って行を追加(上書き)
# 5を指定すると、インデックス5=6番目の行が新しい行に置き換わる
dataFrame.iloc[5] = myList

# 更新後のDataFrameを表示
print("\nUpdated DataFrame after appending a row using iloc...\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
5    Bangladesh      6       40

Updated DataFrame after appending a row using iloc...
         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      7       30

出力を見ると、インデックス5の行が「Bangladesh」から「Sri Lanka」に置き換わっていることが確認できます。このように、ilocを使えば特定の位置の行を簡単に更新・追加できます。

  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