这是一个看似简单的问题,但我似乎无法弄清楚。
我有一个像这样的数据框
如果“animal”中的值为“cat”,我只希望“cat”列的值为 1,对于“animal”列的其他值也类似。
这是示例数据集:
data = pd.DataFrame({'animal':['cat','cat', 'dog', 'fish'], 'cat':[0,0,0,0],'dog':[0,0,0,0],'fish':[0,0,0,0],'lion':[0,0,0,0]})
问题是我不能简单地对值进行二值化,因为即使“lion”不在我的列值中,它仍然作为二进制列存在。(二进制列已定义)。
我从另一篇文章中找到了这个,但似乎无法弄清楚它是如何工作的。
df.fillna('').apply(lambda x : x.index==x.name).astype(int).replace(0,"")
我的实际数据集有大约 100 个二进制列需要循环。
任何帮助表示感谢,谢谢!
繁花如伊
largeQ
相关分类