本文へスキップ
BecomeCoder

Pythonデータ分析コース · 第4章 pandas ― 集計と加工 · レッスン14

並べ替えと新しい列

ブラウザで完結

導入

ランキングを作るには並べ替え、分析用に指標を足すには新しい列を使います。どちらも頻出の加工です。

説明

sort_values("列") で並べ替えます。既定は昇順、ascending=False で降順(大きい順)です。

import pandas as pd

df = pd.DataFrame({
    "name": ["Tanaka", "Suzuki", "Sato"],
    "score": [80, 95, 70],
})
print(df.sort_values("score", ascending=False))  # 高い順

新しい列は、df["新しい列名"] = ... と代入するだけで追加できます。既存の列を使った計算がそのまま書けます。

import pandas as pd

df = pd.DataFrame({
    "name": ["A", "B", "C"],
    "price": [100, 200, 300],
    "qty": [3, 1, 2],
})
df["total"] = df["price"] * df["qty"]   # 金額 = 単価 × 数量
print(df)
print(df.sort_values("total", ascending=False))

df["total"] = df["price"] * df["qty"] で、売上金額の列が一気に計算されて追加されます。

やってみよう

ascending=True(または省略)にして、安い順に並べてみましょう。df["tax"] = df["price"] * 0.1 のように税額の列も足せます。

演習

上の表に total 列(price * qty)を追加し、total大きい順に並べ替えて表示してください。

ヒント1を見る

df["total"] = df["price"] * df["qty"] のあと df.sort_values("total", ascending=False)

実際に動かしてみよう

下のエディタにPythonを書いて「実行」を押すと、numpy・pandas・matplotlib が使える本物のPython(Pyodide)で出力とグラフが表示されます。初回だけ読み込みに少し時間がかかります。本文の例をそのまま試したり、書き換えたりしてみましょう(グラフ内の文字は日本語だと表示が崩れるため英字で書きます)。

Python — ライブラリ付きで実行(Pyodide)

numpy / pandas / matplotlib が使える本物のPython(Pyodide)を読み込みます。初回のみ読み込みに少し時間がかかります(以降はブラウザにキャッシュされます)。
スクロールして表示された時点でも自動で読み込まれます。