gpt4 book ai didi

pandas - 反向 get_dummies()

转载 作者:行者123 更新时间:2023-12-04 03:46:51 26 4
gpt4 key购买 nike

在使用 get_dummies()

将分类数据转换为数字数据后,我的数据框看起来像这样
score1 score2  country_CN country _AU category_leader category_
0.89. 0.45. 0. 1. 0 1
0.55. 0.54 1. 0 1 0

如您所见,转换后的分类列为数字列是 country_CN country _AU category_leader category_

我想将它带到它的原始数据框,如下所示:

score1 score2  country category_leader 
0.89. 0.45. AU
0.55. 0.54 CN leader

我已尝试使用此处列出的建议:Reverse a get_dummies encoding in pandas

但到目前为止还没有运气。

任何帮助/线索?

最佳答案

您可以将虚拟列转换为索引优先 DataFrame.set_index :

#https://stackoverflow.com/a/62085741/2901002
df = undummify(df.set_index(['score1','score2'])).reset_index()

或使用 DataFrame.melt 的替代解决方案, 用 boolean indexing 过滤行, 拆分为 Series.str.split最后旋转 DataFrame.pivot :

df1 = df.melt(['score1','score2'])
df1 = df1[df1['value'].eq(1)]
df1[['a','b']] = df1.pop('variable').str.split('_', expand=True)
df1 = df1.pivot(index=['score1','score2'], columns='a', values='b').reset_index()
print (df1)
a score1 score2 category country
0 0.55 0.54 leader CN
1 0.89 0.45 AU

关于pandas - 反向 get_dummies(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65020813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com