我有一个熊猫数据框,其值如下:
**id** **type** **attr** **value**
1 type1 key1 val1
1 type1 key2 val2
2 type1 key1 val3
2 type1 key2 val4
我希望输出为
**id** **type** **key1** **key2**
1 type1 val1 val2
2. type1 val3 val4
我正在尝试过滤具有相同ID的行,例如选择具有相同ID的行,然后创建新列,如上所示。
我尝试了以下操作,但得到了DataError: No numeric types to aggregate
pd.pivot_table(df, values='value', index=['id', 'type'], columns='attr').reset_index()
更新:
通过以下修改解决了数据错误:
df = pd.pivot_table(df, values='value', index=['id', 'type'], columns='attr', aggfunc='first')
但是我无法理解下面的输出。为什么attr
,'key1'和key2
列悬停在id
和type
上方?
attr key1 key2
id type
1 type1 val1 val2
2 type1 val3 val4