Pandas で 2 つの行を入れ替える方法 (例あり)


次のカスタム関数を使用して、pandas DataFrame 内の 2 つの行の位置を交換できます。

 def swap_rows (df, row1, row2):
    df. iloc [row1], df. iloc [row2] = df. iloc [row2]. copy (), df. iloc [row1]. copy ()
    return df

この関数は、DataFrame のrow1 インデックス位置とrow2インデックス位置の行位置を交換します。

次の例は、この関数を実際に使用する方法を示しています。

例: Pandas で 2 行を交換する

次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['Mavs', 'Nets', 'Kings', 'Cavs', 'Heat', 'Magic'],
                   ' points ': [12, 15, 22, 29, 24, 22],
                   ' assists ': [4, 5, 10, 8, 7, 10]})

#view DataFrame
print (df)

    team points assists
0 Mavs 12 4
1 Nets 15 5
2Kings 22 10
3 Cavs 29 8
4 Heat 24 7
5 Magic 22 10

DataFrame のインデックス位置 0 と 4 の行を交換するswap_rows()関数を定義できます。

 #define function to swap rows
def swap_rows (df, row1, row2):
    df. iloc [row1], df. iloc [row2] = df. iloc [row2]. copy (), df. iloc [row1]. copy ()
    return df

#swap rows in index positions 0 and 4
df = swap_rows(df, 0 , 4 )

#view updated DataFrame
print (df)

    team points assists
0 Heat 24 7
1 Nets 15 5
2Kings 22 10
3 Cavs 29 8
4 Mavs 12 4
5 Magic 22 10

インデックス位置 0 と 4 の行が交換され、他の行は同じ位置のままであることに注意してください。

: swap_rows()関数では、 .iloc関数を使用して、インデックス位置に基づいて DataFrame から行を選択しました。

追加リソース

次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。

パンダ: 列内の特定の値の出現を数える方法
Pandas: 列が値と一致する行のインデックスを取得します
パンダ: DataFrame の欠損値を数える方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です