使用 pandas 数据框列值来透视其他列
Posted
技术标签:
【中文标题】使用 pandas 数据框列值来透视其他列【英文标题】:Use pandas dataframe column values to pivot other columns 【发布时间】:2019-04-06 21:26:00 【问题描述】:我有以下dataframe
想要重塑:
dir hour board_sign pass
1 5 d 294
1 5 u 342
1 6 d 1368
1 6 u 1268
1 7 d 3880
1 7 u 3817
我想要做的是将“board_sign”中的值用作新列,其中将包含“pass”列中的值,以便dataframe
看起来像这样:
dir hour d u
1 5 294 342
1 6 1368 1268
1 7 3880 3817
我已经尝试了几个函数,如熔化数据透视堆栈和取消堆栈,但似乎它们都没有给出想要的结果,我也尝试了 pivot_table,但由于多索引,它很难迭代。
这似乎是一个简单的操作,但我就是做错了。 有没有其他我可以使用的功能?
谢谢。
【问题讨论】:
df.set_index(['dir','hour','board_sign'])['pass'].unstack()
还有df.pivot_table(columns='board_sign',index=['dir','hour'],values='pass')
谢谢!!这正是我想要的!
【参考方案1】:
使用pivot_table
:
df = df.pivot_table(index=['dir', 'hour'], columns='board_sign', values='pass').reset_index()
del df.columns.name
df
dir hour d u
0 1 5 294 342
1 1 6 1368 1268
2 1 7 3880 3817
【讨论】:
我一开始尝试了 pivot_table 选项,它起作用了。问题是我很难使用输出,因为数据透视表中的多索引。 与reset_index()
多索引不见了以上是关于使用 pandas 数据框列值来透视其他列的主要内容,如果未能解决你的问题,请参考以下文章