大佬教程收集整理的这篇文章主要介绍了pandas 数据透视表,其中该列包含具有多个类别的字符串,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个表单数据:
'cat' 'value' a 1 a,b 2 a,b,c 3 b,c 2 b 1
@H_674_7@我想使用数据透视表进行转换:
'a' 'b' 'c' 1 2 2 3 3 3 2 2 1
@H_674_7@我如何执行此操作。如果我使用 pivot 命令:
df.pivot(columns= 'cat',values = 'value')
@H_674_7@产生这个结果
'a' 'a,b' 'a,c' 'b,c' 'b' 1 2 3 2 1
@H_674_7@解决方法
可以将字符串转成列表后使用
.explode()
,然后正常旋转:df['cat'] = df['cat'].str.split(',') df = df.explode('cat').pivot_table(index=df.explode('cat').index,columns='cat',values='value')
@H_674_7@输出:
cat a b c 0 1.0 NaN NaN 1 2.0 2.0 NaN 2 3.0 3.0 3.0 3 NaN 2.0 2.0 4 NaN 1.0 NaN
@H_674_7@然后您可以重置或重命名索引,如果您不希望它被命名为
,cat
。尝试使用
str.get_dummies
并乘以value
列(如有必要,然后将 0 替换为 nan)df['cat'].str.get_dummies(",").mul(df['value'],axis=0).replace(0,np.nan)
@H_674_7@
a b c 0 1.0 NaN NaN 1 2.0 2.0 NaN 2 3.0 3.0 3.0 3 NaN 2.0 2.0 4 NaN 1.0 NaN
@H_674_7@大佬总结
以上是大佬教程为你收集整理的pandas 数据透视表,其中该列包含具有多个类别的字符串全部内容,希望文章能够帮你解决pandas 数据透视表,其中该列包含具有多个类别的字符串所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。