首页 > 解决方案 > 将 pandas 数据框从 (id, name:a, value:b) 重新排列为 (id, a: b)

问题描述

我从 SQL 数据库导入 pandas 数据框中的数据。每行都包含一个 id、一个参数名称和相应的参数值。就像在这个精简的例子中一样:

import pandas as pd
data =  [
            ['aaa', 'A', 0],
            ['bbb', 'A', 1],          
            ['aaa', 'B', 2],
            ['bbb', 'B', 3],
            ['aaa', 'C', 4],
            ['bbb', 'C', 5],
]
df = pd.DataFrame(data,  columns=['id', 'name', 'value'])
df = df.set_index('id')
print(df)
    name  value
id             
aaa    A      0
bbb    A      1
aaa    B      2
bbb    B      3
aaa    C      4
bbb    C      5

要分析不同参数 A、B、C、[...] 之间的相关性,我需要以下格式的数据框:

     A  B  C
id          
aaa  0  2  4
bbb  1  3  5

我想这一定是一个相对常见的情况,但我不知道如何以一种优雅的方式做到这一点。

标签: pythonpandasdataframe

解决方案


是的,有一个简单的解决方案pivot_table

output = df.pivot_table(index='id', columns='name')
print(output)

    value      
name     A  B  C
id              
aaa      0  2  4
bbb      1  3  5


推荐阅读