3
编辑日期: 2024-11-28 文章阅读: 次
小技巧3:使用 melt 如何对数据透视分析?
构造一个 DataFrame:
d = {\
"district_code": [12345, 56789, 101112, 131415],
"apple": [5.2, 2.4, 4.2, 3.6],
"banana": [3.5, 1.9, 4.0, 2.3],
"orange": [8.0, 7.5, 6.4, 3.9]
}
df = pd.DataFrame(d)
df
打印结果:
district_code apple banana orange
0123455.23.58.0
1567892.41.97.5
21011124.24.06.4
31314153.62.33.9
5.2 表示 12345 区域的 apple 价格,并且 apple, banana, orange,这三列都是一种水果,那么如何把这三列合并为一列?
使用 pd.melt
具体参数取值,大家根据此例去推敲:
df = df.melt(\
id_vars = "district_code",
var_name = "fruit_name",
value_name = "price")
df
打印结果:
district_code fruit_name price
012345 apple 5.2
156789 apple 2.4
2101112 apple 4.2
3131415 apple 3.6
412345 banana 3.5
556789 banana 1.9
6101112 banana 4.0
7131415 banana 2.3
812345 orange 8.0
956789 orange 7.5
10101112 orange 6.4
11131415 orange 3.9
以上就是长 DataFrame,对应的原 DataFrame 是宽 DF.