Pandas DataFrame で列を前面に移動

Fariba Laiq 2022年6月13日
Pandas DataFrame で列を前面に移動

Python には、Pandas と呼ばれるデータ分析ライブラリがあります。Python の Pandas を使用して、DataFrame でさまざまな種類の操作を実行できます。

このガイドでは、パンダの DataFrame の列を前に移動するように並べ替える方法について説明します。

Pandas DataFrame で列を前面に移動する

DataFrame 内の列の位置を再配置したいとします。Pandas は、単一の列を Pandas DataFrame の前に移動する insert() および reindex() メソッドを提供します。

pop() および insert() メソッドを使用する

アイデアは、pop() メソッドを使用して、前に移動する列を削除することです。次に、挿入する場所を指定して、insert() メソッドを使用して列を DataFrame に再度挿入します。

次のコードでは、学生のレコードで構成される DataFrame があります。私たちの目標は、列名前を前に移動することです。

まず、pop() メソッドを使用して削除します。pop() メソッドは、削除する列のラベルをパラメーターとして受け取り、それを返します。返された列を col に保存しました。

insert() メソッドを使用して、その場所を loc=0(最初の列の位置)、列名、および実際の列として定義することにより、列を DataFrame にプッシュバックしました。

サンプルコード:

# Python 3.x
import pandas as pd

student = {
    "Course": ["Java", "Python", "C++", "Dart"],
    "Marks": [70, 80, 90, 60],
    "Age": [19, 20, 21, 19],
    "Name": ["Jhon", "Aliya", "Nate", "Amber"],
}
df = pd.DataFrame(student)
print(df)
col = df.pop("Name")
df.insert(loc=0, column="Name", value=col)
print(df)

出力:

$python3 Main.py

   Course  Marks  Age   Name
0    Java     70   19   Jhon
1  Python     80   20  Aliya
2     C++     90   21   Nate
3    Dart     60   19  Amber
    Name  Course  Marks  Age
0   Jhon    Java     70   19
1  Aliya  Python     80   20
2   Nate     C++     90   21
3  Amber    Dart     60   19

reindex() メソッドを使用する

インデックスを再作成することで、列を再配置できます。reindex() メソッドは列を並べ替えます。

このメソッドは、pandas.DataFrame モジュールで使用できます。列名のリストを希望の順序で提供し、listDataFramereindex() メソッドに渡して、更新された DataFrame を返します。

サンプルコード:

# Python 3.x
import pandas as pd

student = {
    "Course": ["Java", "Python", "C++", "Dart"],
    "Marks": [70, 80, 90, 60],
    "Age": [19, 20, 21, 19],
    "Name": ["Jhon", "Aliya", "Nate", "Amber"],
}
df = pd.DataFrame(student)
print(df)
df = pd.DataFrame.reindex(df, columns=["Name", "Course", "Marks", "Age"])
print(df)

出力:

$python3 Main.py

   Course  Marks  Age   Name
0    Java     70   19   Jhon
1  Python     80   20  Aliya
2     C++     90   21   Nate
3    Dart     60   19  Amber
    Name  Course  Marks  Age
0   Jhon    Java     70   19
1  Aliya  Python     80   20
2   Nate     C++     90   21
3  Amber    Dart     60   19
著者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

関連記事 - Pandas DataFrame