pandas.melt 使用参数:
pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)
参数解释:
frame:要处理的数据集。
id_vars:不需要被转换的列名。
value_vars:需要转换的列名,如果剩下的列全部都要转换,就不用写了。
var_name和value_name是自定义设置对应的列名。
col_level :如果列是MultiIndex,则使用此级别。
melt 是溶解/分解的意思, 即拆分数据。df.melt() 则是将宽数据集变成长数据集
例子:
import pandas as pd
# 读取state_fruit2数据集
state_fruit2 = pd.read_csv('data/state_fruit2.csv')
state_fruit2
State | Apple | Orange | Banana | |
---|---|---|---|---|
0 | Texas | 12 | 10 | 40 |
1 | Arizona | 9 | 7 | 12 |
2 | Florida | 0 | 14 | 190 |
# 使用melt方法,将列传给id_vars和value_vars。melt可以将原先的列名作为变量,原先的值作为值。
state_fruit2.melt(id_vars=['State'],value_vars=['Apple', 'Orange', 'Banana'])
State | variable | value | |
---|---|---|---|
0 | Texas | Apple | 12 |
1 | Arizona | Apple | 9 |
2 | Florida | Apple | 0 |
3 | Texas | Orange | 10 |
4 | Arizona | Orange | 7 |
5 | Florida | Orange | 14 |
6 | Texas | Banana | 40 |
7 | Arizona | Banana | 12 |
8 | Florida | Banana | 190 |