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

标签 python pandas dataframe

我有这个 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

关于python - 如何使用列名作为 Pandas 数据框中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31938216/

相关文章:

python - 将 Pandas 系列转换为 DataFrame

python - 如何将单个条件应用于数据框中的列列表并将值添加到第四列而不使用多个 OR

python - 数据被插入到 MySQL 但不是永久的 - Python

python - 如何连接 pandas 中的 DatetimeIndex 对象?

python - Pandas 替换具有多种变体的列中的字符串值

R 创建一个新列,用于标识行是否是该类型用户的最后一个条目

python - 我怎样才能找到一个大字符串的最合适的子序列?

python - 为什么 Upstart 不能运行 'source bin/activate' ?

python - Pandas Read_CSV 错误地读取数字

python - 如何使用 numpy 广播按条件组合多索引列值