Python・PandasでDataFrameの列の順序を逆にする方法
PandasのDataFrameで列の順序を逆にするには、dataframe.columnsに対してスライス[::-1]を適用します。この方法では、元のDataFrameは変更されず、列が逆順に並べ替えられた新しいDataFrameが返されます。
基本構文
dataFrame[dataFrame.columns[::-1]]
手順1:必要なライブラリをインポートする
まず、pandasをインポートします。
import pandas as pd
手順2:4列のDataFrameを作成する
ここでは、「Car」「Cubic_Capacity」「Reg_Price」「Units_Sold」の4つの列を持つDataFrameを作成します。
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000],
"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000],
"Units_Sold": [100, 120, 150, 110, 200, 250]
})
手順3:列の順序を逆にする
columns[::-1]により列ラベルを逆順にし、それを使って新しいDataFrameを作成します。
df = dataFrame[dataFrame.columns[::-1]]
完全なサンプルコード
import pandas as pd
# DataFrameを作成
dataFrame = pd.DataFrame({
"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
"Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000],
"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000],
"Units_Sold": [100, 120, 150, 110, 200, 250]
})
print("DataFrame ...\n", dataFrame)
# 列の順序を逆にする
df = dataFrame[dataFrame.columns[::-1]]
print("\nReversed DataFrame....\n", df)
実行結果
上記のコードを実行すると、次の出力が得られます。
DataFrame ...
Car Cubic_Capacity Reg_Price Units_Sold
0 BMW 2000 7000 100
1 Lexus 1800 1500 120
2 Tesla 1500 5000 150
3 Mustang 2500 8000 110
4 Mercedes 2200 9000 200
5 Jaguar 3000 6000 250
Reversed DataFrame....
Units_Sold Reg_Price Cubic_Capacity Car
0 100 7000 2000 BMW
1 120 1500 1800 Lexus
2 150 5000 1500 Tesla
3 110 8000 2500 Mustang
4 200 9000 2200 Mercedes
5 250 6000 3000 Jaguar
補足:ilocを使った代替方法
位置ベースのインデックス指定が可能なilocを使っても、同じ結果が得られます。行はそのまま、列のみを逆順にする場合は以下のように書きます。
df = dataFrame.iloc[:, ::-1]
どちらの方法でも元のDataFrameは変更されないため、必要に応じて結果を別の変数に代入して利用してください。
-
Python Pandas入門:query()メソッドでDataFrameの列をクエリ(条件抽出)する方法
PandasのDataFrameで列をクエリ(条件による絞り込み)を行うには、query()メソッドを使用します。query()は、文字列形式の条件式を渡すだけで直感的にレコードをフィルタリングできる便利な機能です。 サンプルDataFrameの作成 まず、商品名・期首在庫・期末在庫を持つDataFrameを作成してみましょう。 import pandas as pd dataFrame = pd.DataFrame({ Product: [SmartTV, PenDrive, Speaker, Earphone], Opening_Stock: [300, 700, 1
-
【Python・Pandas】データフレームの特定の列の合計値を取得する方法
データ分析をしていると、データフレーム(DataFrame)の中から特定の列だけの合計値を求めたい場面によく出会います。そんなときに便利なのが、Pandasのsum関数です。 合計を計算したい列をsum関数に渡すだけで、その列の合計値を簡単に取得できます。さらに、axis引数を指定すれば、列方向・行方向のどちらで集計するかも自由に制御可能です。 それでは、具体的なコード例を見ていきましょう。 サンプルコード import pandas as pd my_data = { Name: pd.Series([Tom, Jane, Vin, Eve, Will]), Age: p