小编Ros*_*ula的帖子

根据 Pandas 中的列名称转置 df 列

我有一个 pandas 数据框,如下所示,我想根据列名称转置 df

我想转置所有具有_1、_2、_3 和_4 的列。我的 df 中有 100 多个值,下面是示例数据。


import pandas as pd

data = {
        # One Id Column
        'id':[1],
        
        #Other columns
        'c1':['1c'],
        'c2':['2c'],
        'c3':['3c'],
        
        #IC indicator
        'oc_1':[1],
        'oc_2':[0],
        'oc_3':[1],
        'oc_4':[1],
        
        #GC Indicator
        'gc_1':['T1'],
        'gc_2':['T2'],
        'gc_3':['T3'],
        'gc_4':['T4'],
        
        #PF Indicator
        'pf_1':['PF1'],
        'pf_2':['PF2'],
        'pf_3':['PF3'],
        'pf_4':['PF4'],
        
        #Values
        'V1_1':[11],
        'V1_2':[12],
        'V1_3':[13],
        'V1_4':[14],
        
        'S1_1':[21],
        'S1_2':[22],
        'S1_3':[23],
        'S1_4':[24]
        
        }
    
df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我需要将这个 df 转置为以下输出

在此输入图像描述

我尝试了下面的代码:

standard_cols = ['id','c1','c2','c3']
value_cols = ['V1_1','V1_2','V1_3','V1_4','S1_1','S1_2','S1_3','S1_4']
result_cols = standard_cols+['OC','GC','PF','Var','value']

melted_df = pd.melt(df, id_vars=standard_cols + ['oc_1','oc_2','oc_3','oc_4','gc_1','gc_2','gc_3','gc_4','pf_1','pf_2','pf_3','pf_4'],
                    value_vars=value_cols,var_name='Var',value_name='value')

print(melted_df)

Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

2
推荐指数
1
解决办法
194
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1