Python 将数据框列类别替换为0和1

Python 将数据框列类别替换为0和1,python,pandas,dataframe,Python,Pandas,Dataframe,我的数据框中的“结果类型”列(图中最右侧)包含9类动物在收容所发生的情况(收养、死亡、转移等)。我正在尝试将这些类别更改为1以供采用,将所有其他类别更改为0。我试着使用这个for循环来实现这一点,但是当我随后打印df时,类别仍然存在,并且没有被0和1替换。谁能告诉我为什么? 编辑:我意识到有人在另一个问题中发现了另一种方法,但我想知道为什么我的for-loop方法不起作用。(我是python的初学者,希望从中学习。我不明白为什么for循环不改变df值。)以下应该可以解决这个问题:df.loc[

我的数据框中的“结果类型”列(图中最右侧)包含9类动物在收容所发生的情况(收养、死亡、转移等)。我正在尝试将这些类别更改为1以供采用,将所有其他类别更改为0。我试着使用这个for循环来实现这一点,但是当我随后打印df时,类别仍然存在,并且没有被0和1替换。谁能告诉我为什么?


编辑:我意识到有人在另一个问题中发现了另一种方法,但我想知道为什么我的for-loop方法不起作用。(我是python的初学者,希望从中学习。我不明白为什么for循环不改变df值。)

以下应该可以解决这个问题:df.loc[df['output\u type']='Adoption','output\u type']=1

如果您需要单热编码,您可以在此处找到详细信息:

不使用for循环,只需使用
df['output\u type']=(df['output\u type']='Adoption')。astype(int)
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')