Python中如何高效实现Pandas DataFrame的宽表转长表结构
高效实现Pandas宽表转长表的方法
你需要实现的是典型的宽表转长表操作,直接使用Pandas内置的pd.melt()方法即可,该方法是官方优化的矢量化实现,性能远高于自定义for循环,处理百万级规模的数据集也能快速完成,完全适配Colab的大数据处理场景。
核心实现代码
import pandas as pd # 构造示例原DataFrame,实际使用时替换为你自己的df即可 df = pd.DataFrame({ 'xx': ['x1', 'x2'], 'yy': ['y1', 'y2'], 'zz': ['z1', 'z2'], 'a': [0, 1], 'b': [2, 0], 'c': [1, 2], 'k': [3, 0] }) # 宽表转长表核心代码 res_df = df.melt( id_vars=['xx', 'yy', 'zz'], value_name='valor', var_name='nueva columna' ) # 若需要和示例输出的行顺序完全一致,可追加以下排序代码 res_df = res_df.sort_values(by=['xx', 'yy', 'zz']).reset_index(drop=True)
参数说明
id_vars:指定不需要做行列转换、需要原样保留的列,对应你需求里的前三列value_name:自定义存储原单元格数值的新列名,对应你要求的valorvar_name:自定义存储原列名的新列名,对应你要求的nueva columna
内容的提问来源于stack exchange,提问作者TKross
相关产品推荐
相关产品推荐

