pandas使用unstack拆分rater列报索引重复错误的解决方案
Pandas DataFrame按指定列拆分转宽表解决方案
现有如下格式的pandas DataFrame:
rater audio rating a n1 y1 a n2 y2 b n1 y3 b n2 y4
需求说明
需要拆分rater列,将长表转为如下格式的宽表:
audio rating_a rating_b n1 y1 y3 n2 y2 y4
尝试过的方案及问题
第一次尝试代码
dftemp = dffinal.set_index(['rater', 'audio']) dftemp.unstack(['rater'])
运行报错:Index contains duplicate entries, cannot reshape(索引包含重复条目,无法重塑)
修改后第二次尝试代码
dftemp = dffinal.set_index(['rater', 'audio'],append=True)
运行后输出结果出现大量NaN值,不符合预期:
audio rating rater a b 0 n1 y1 NaN 1 n2 NaN y2 2 n1 y3 NaN 3 n2 NaN y4
最终可用解决方案
使用pivot_table方法即可实现需求,代码如下:
dffinal.pivot_table(index='audio', columns='rater', values='rating')
内容的提问来源于stack exchange,提问作者Kamini
相关产品推荐
相关产品推荐

