Skip to main content
 首页 » 编程设计

python之如何使用列名作为 Pandas 数据框中的值

2025年05月04日9lhb25

我有这个 Pandas 数据框:

df = DataFrame({'B' : ('A','B','C','D','E','F','G'), 'C' : (1,3,5,6,8,2,5), 'D' : (5,2,6,9,3,7,3)}) 
 
 
 
 
    B  C  D 
 0  A  1  5 
 1  B  3  2 
 2  C  5  6 
 3  D  6  9 
 4  E  8  3 
 5  F  2  7 
 6  G  5  3 

我需要进行出色的计算。对我来说方便的格式是:

    B description  value 
0   A           C      1 
1   B           C      3 
2   C           C      5 
3   D           C      6 
4   E           C      8 
5   F           C      2 
6   G           C      5 
7   A           D      5 
8   B           D      2 
9   C           D      6 
10  D           D      9 
11  E           D      3 
12  F           D      7 
13  G           D      3 

有没有办法将列名用作值

请您参考如下方法:

你可以使用 pd.melt :

In [13]: pd.melt(df, id_vars=['B'], var_name='description') 
Out[13]:  
    B description  value 
0   A           C      1 
1   B           C      3 
2   C           C      5 
3   D           C      6 
4   E           C      8 
5   F           C      2 
6   G           C      5 
7   A           D      5 
8   B           D      2 
9   C           D      6 
10  D           D      9 
11  E           D      3 
12  F           D      7 
13  G           D      3