pandas meltのチートシート
概要
- pivotの逆の操作の関数
- イメージとして横に広いテーブルを縦に長いテーブルに変換する
具体例
example = [["date", "twitter", "youtube", "tiktok"],
["a", "10", "10", "0"],
["b", "100", "20", "50"],
["c", "1000", "50", "1000"]]
import pandas as pd
df = pd.DataFrame(example[1:])
df.columns = example[0]
date | youtube | tiktok | ||
---|---|---|---|---|
0 | a | 10 | 10 | 0 |
1 | b | 100 | 20 | 50 |
2 | c | 1000 | 50 | 1000 |
このようなデータがある時、twitter
, youtube
, tiktok
のカラム名をバリューにして縦に長くする
df_melt = pd.melt(df, id_vars=["date"], value_vars=["twitter", "youtube", "tiktok"]).sort_values(by=["date"])
print(df_melt.to_markdown())
date | variable | value | |
---|---|---|---|
0 | a | 10 | |
3 | a | youtube | 10 |
6 | a | tiktok | 0 |
1 | b | 100 | |
4 | b | youtube | 20 |
7 | b | tiktok | 50 |
2 | c | 1000 | |
5 | c | youtube | 50 |
8 | c | tiktok | 1000 |