如何使用Pandas Melt函数转换多列结构的DataFrame?
使用Pandas的melt函数处理多列宽格式DataFrame
完全可以用melt函数实现这个转换,核心是指定好要保留的标识列和需要转置的数值列,分两种常见情况处理:
情况1:Edad是DataFrame的行索引
如果你的原始DataFrame中Edad是行索引(比如展示里的[15-25]这类是索引值),先把索引转为普通列,再调用melt:
# 假设原始DataFrame名为df df = df.reset_index().rename(columns={'index': 'Edad'}) long_df = df.melt(id_vars='Edad', var_name='Year', value_name='Value')
情况2:Edad已经是普通列
如果Edad本身就是DataFrame的一列,直接调用melt即可:
long_df = df.melt(id_vars='Edad', var_name='Year', value_name='Value')
参数说明
id_vars='Edad':指定转换后要保留的标识列,对应每个数值所属的年龄组var_name='Year':将原来的年份列名(2000、2001等)转为新列的名称value_name='Value':把原单元格中的数值统一归集到这个新列里
转换后效果
运行后得到的long_df会是你需要的长格式:
Edad Year Value 0 [15-25] 2000 126675 1 (25-35] 2000 65823 2 (35-45] 2000 37474 3 (45-55] 2000 20624 4 (55-65] 2000 30240 ...
内容的提问来源于stack exchange,提问作者Santiago Fernndez del Castillo
相关产品推荐
相关产品推荐

