df.melt() 函数是 Pandas 中一个非常有用的函数,用于将 DataFrame 从宽格式(wide format)转换成长格式(long format)。这种转换通常用于将 多个列
的数据“融化”成 两列
:一个 标识符列
和一个 值列
,使数据更适合进行某些类型的分析或可视化。
df.melt() 使用参数:
df.melt(id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)
id_vars
: 不需要被转换的列名。作为新 df 的标识符,即它们的值会重复出现来匹配其他变量的多个值。
value_vars
: 需要转换的列名。如果剩下的列全部都要转换,就可以不用写。
var_name
: 这是融化后,原来的列名变成的新列的名称。
value_name
: 这是融化后,原来的值变成的新列的名称。
col_level
: 如果列是 MultiIndex ,则使用此级别。使用场景:
想将 columns 中的10列:
2009 ~ 2018
转为标识符列
为 “年份”,对应的值列
为 “人均可支配收入”:
代码:
# 保留列:['省份', '城市'] df = df.melt(id_vars=['省份', '城市'], var_name='年份', value_name='人均可支配收入')