用0和1替换数据框列类别

时间:2020-07-14 02:05:11

标签: python pandas dataframe

我的数据框中的成果列类型(图像的最右边)包含庇护所中动物发生的9类变化(收养,死亡,转移等)。我正在尝试将那些类别更改为“采用”为1,将所有其他类别更改为“ 0”。我尝试使用此for循环来执行此操作,但是当我随后打印df时,类别仍然存在并且没有被0和1替换。有人可以告诉我为什么吗? enter image description here

import pandas as pd
df = pd.read_csv('aac_shelter_outcomes.csv')
df.head() 


for item in df['outcome_type']:
    if item == "Adoption":
        item = int('1')
    else: item = int('0')
        

编辑我意识到有人可能已经在另一个问题中发现了另一种方法,但是我想知道为什么我的for循环方法不起作用。 (我是python的初学者,希望从中学到东西。我看不出为什么for循环不会更改df值。)

1 个答案:

答案 0 :(得分:1)

以下应解决此问题:df.loc [df ['outcome_type'] ='Adoption','outcome_type'] = 1

如果您需要一种热编码,则可以在此处找到详细信息: How can I one hot encode in Python?