假设原始数据如下所示:

A B1 B2 B3 0 1 4 7 10 1 2 5 8 11 2 3 6 9 12

使用pd.melt函数将宽数据转换为长数据,代码如下:

import pandas as pd

data = {'A': [1, 2, 3],
        'B1': [4, 5, 6],
        'B2': [7, 8, 9],
        'B3': [10, 11, 12]}

df = pd.DataFrame(data)

df_long = pd.melt(df, id_vars=['A'], value_vars=['B1', 'B2', 'B3'], var_name='B', value_name='value')

print(df_long)

输出结果如下:

A B value 0 1 B1 4 1 2 B1 5 2 3 B1 6 3 1 B2 7 4 2 B2 8 5 3 B2 9 6 1 B3 10 7 2 B3 11 8 3 B3 12

pd.melt函数中,id_vars参数指定要保留的列,value_vars参数指定要转换的列,var_name参数指定新列的名称,value_name参数指定新列中的值的名称。

Pandas melt() 函数:将宽数据转换为长数据,并将列变量拆分为新列

原文地址: https://www.cveoy.top/t/topic/fvdY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录