我已经看到了一些关于将列/系列分解为 Pandas 数据框的多个列的主题的变体,但我一直在尝试做一些事情,但在现有方法上并没有真正成功。
给定一个像这样的 DataFrame:
key val
id
2 foo oranges
2 bar bananas
2 baz apples
3 foo grapes
3 bar kiwis
我想将 key
系列中的项目转换为列,以 val
值作为值,如下所示:
foo bar baz
id
2 oranges bananas apples
3 grapes kiwis NaN
我觉得这应该是相对简单的事情,但是随着卷积水平的增加,我已经为此苦苦思考了几个小时,但没有成功。
最佳答案
有几种方法:
使用 .pivot_table
:
>>> df.pivot_table(values='val', index=df.index, columns='key', aggfunc='first')
key bar baz foo
id
2 bananas apples oranges
3 kiwis NaN grapes
使用 .pivot
:
>>> df.pivot(index=df.index, columns='key')['val']
key bar baz foo
id
2 bananas apples oranges
3 kiwis NaN grapes
>>> df.reset_index().groupby(['id', 'key'])['val'].aggregate('first').unstack()
key bar baz foo
id
2 bananas apples oranges
3 kiwis NaN grapes
关于python - 将列值转换为列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26255671/