種類ごとに何回出現しているかを取得します。
具体例で確認しましょう。
前問と同じく、惣菜店の販売履歴を表した以下のdf
を使います。
Date | Item | Num | |
---|---|---|---|
0 | 2022/04/02 | 弁当A | 2 |
1 | 2022/04/02 | 中華B | 3 |
2 | 2022/04/03 | 中華B | 1 |
3 | 2022/04/03 | 弁当A | 4 |
4 | 2022/04/03 | サラダ | 2 |
ある列の種類ごとの出現回数は、下記のように取得します。結果はSeriesになります。
df.列名.value_counts()
たとえば、列Item
の種類ごとの出現回数は、以下のようになります。
df.Item.value_counts()
実行結果
弁当A 2
中華B 2
サラダ 1
Name: Item, dtype: int64
弁当A、中華B、サラダが、それぞれ、2件、2件、1件ということがわかります。
また、「列の要素の組み合わせ」について出現回数を取得するには、下記のようにDataFrameのvalue_counts()
を使います。こちらも結果はSeriesになります。
df.value_counts()
実行結果
Date Item Num
2022/04/02 中華B 3 1
弁当A 2 1
2022/04/03 サラダ 2 1
中華B 1 1
弁当A 4 1
dtype: int64
実行結果を確認すると、たとえば「2022/04/02に中華Bを3個注文した」というデータは1件だけなので、1行目の集計結果は1になっています。
演習
惣菜店の販売履歴のDataFrameを作成します。
import pandas as pd df = pd.DataFrame({ "Date": ["2022/04/02", "2022/04/02", "2022/04/03", "2022/04/03", "2022/04/03"], "Item": ["弁当A", "中華B", "中華B", "弁当A", "サラダ"], "Num": [2, 3, 1, 4, 2], }) df
Date | Item | Num | |
---|---|---|---|
0 | 2022/04/02 | 弁当A | 2 |
1 | 2022/04/02 | 中華B | 3 |
2 | 2022/04/03 | 中華B | 1 |
3 | 2022/04/03 | 弁当A | 4 |
4 | 2022/04/03 | サラダ | 2 |
種類ごとの出現回数は、列に対してvalue_counts()
で取得できます。 結果は、出現回数の多い順になります。今回のデータの場合、全5行のうち2022/04/03
が3行、2022/04/02
が2行あることがわかります。In [2]:
df.Date.value_counts()
2022/04/03 3 2022/04/02 2 Name: Date, dtype: int64
続いて、列Item
の種類ごとの出現回数を確認してみましょう。 これにより、商品ごとの販売回数を確認できます。
df.Item.value_counts()
弁当A 2 中華B 2 サラダ 1 Name: Item, dtype: int64
DataFrameについても確認してみましょう。 実行すると、「列の要素の組み合わせ」ごとの出現回数を取得できます。
df.value_counts()
Date Item Num 2022/04/02 中華B 3 1 弁当A 2 1 2022/04/03 サラダ 2 1 中華B 1 1 弁当A 4 1 dtype: int64
上記の結果は列がたくさんあるように見えますが、Seriesです。to_frame()
を使って1列のDataFrameにしてわかりやすくしてみましょう。見方については解説で説明します。
df.value_counts().to_frame()
0 | |||
---|---|---|---|
Date | Item | Num | |
2022/04/02 | 中華B | 3 | 1 |
弁当A | 2 | 1 | |
2022/04/03 | サラダ | 2 | 1 |
中華B | 1 | 1 | |
弁当A | 4 | 1 |
SeriesやDataFrameに対して、種類ごとの出現回数を確認するには下記のようにします。
df.列名.value_counts()
df.value_counts()
df.value_counts()
の結果について、詳しく確認しましょう。下図は見やすいように、表形式にしたものです。
df.value_counts()
では、「列の要素の組み合わせ」ごとに出現回数を数えます。今回のデータでは、各行の「列の要素の組み合わせ」は下記になります。
("2022/04/02", "中華B", 3)
("2022/04/02", "弁当A", 2)
("2022/04/03", "サラダ", 2)
("2022/04/03", "中華B", 1)
("2022/04/03", "弁当A", 4)
この「列の要素の組み合わせ」に対して出現回数を計算します。
たとえば、("2022/04/02", "中華B", 3)
は1回です。
また、("2022/04/02", "弁当A", 2)
も1回です。pandasでは、前行と同じ項目のとき表示時に省略されることがあります。ここでは("2022/04/02", "弁当A", 2)
は弁当A 2
とだけ表示されています。
コメント