所以我的Pandas Dataframe 看起来像这样:
category1 category2 ... category6 category7
[filename ... ]
[0.wav 5 1.0 ... NaN NaN]
[1.wav 8 1.0 ... NaN NaN]
[2.wav 5 1.0 ... NaN NaN]
我已经将filename列设置为我的索引。现在我想将这些值作为我的新列。每列中的值是从0到12的数字或NaN。我想使用从0到12的数字代替category1...7,并对这些值进行一次热编码。因此,对于文件0.wav,我想在第5列和第1列各设置一个1,其余为0。就像这样:
0 1 2 ... 5 ... 12
[filename ]
[0.wav 0 1 0 ... 1 ... 0 ]
[1.wav 0 1 0 ... 0 ... 0 ]
[2.wav 0 1 0 ... 1 ... 0 ]
我试过使用panda.get_dummies函数,并将我的值从int或float改为string,因为get_dummies函数需要一个对象而不是数字,但是我不知道如何按我想要的方式更改列。
1条答案
按热度按时间wqsoz72f1#
您可以将
get_dummies
与groupby.max
和reindex
一起使用:输出: