Menu
CoddyTech

データのグループ化

CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 43/60。

どの都市の売上が多いでしょうか?すべての行の平均を1つ求めても分かりません。行を都市ごとに分けて山にし、それぞれの山の平均を求めます:

6つの店舗の行を都市ごとに3つの山に分ける。リヨン、ニース、パリ。それぞれの山の平均は、リヨン 23.0、ニース 18.0、パリ 38.0

1行で両方を行います。

shops = pd.DataFrame({
    "city": ["Lyon", "Paris", "Lyon", "Nice", "Paris", "Lyon"],
    "sales": [20, 35, 26, 18, 41, 23],
})
means = shops.groupby("city")["sales"].mean()
print(means)

次のように出力されます:

city
Lyon     23.0
Nice     18.0
Paris    38.0
Name: sales, dtype: float64

groupby("city")でグループを作り、["sales"]で列を選び、.mean()で各グループの平均を計算します。.sum()、.min()、.max()も使えます。

山を順位付けするには、並べ替えます。means.sort_values(ascending=False).index[0] は最も売れた Paris です。

challenge icon

チャレンジ

中級

ランニングクラブでは、各ランの記録をruns.csvに保存します。列はrunner、distance_km、minutes、climb_mです。スターターコードは数値列の1つをcolumnに読み込みます。

  1. 各ランナーについて、その列の平均値を出力します。
  2. 次に、以下の最後の行のように、平均値が最も大きいランナーの名前を出力します。

ランナーが2人のクラブで、distance_kmの場合:

runner
Ana    6.1
Bo     8.4
Name: distance_km, dtype: float64
Top runner: Bo with 8.4

自分で試してみよう

import pandas as pd

runs = pd.read_csv("runs.csv")
column = input()

# 以下にコードを書いてください
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

データとプロットのすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ