为什么这段代码不循环通过一个系列并替换值? [重复]

问题描述 投票:-1回答:1

这个问题在这里已有答案:

# data is a dataframe
for i in data.Sex[0:]:
    if i == 'male':
        i=1
        print(i)
    elif i == 'female':
        i=0
        print(i)

输出打印出我想要的列,将男性改为1,将女性改为0.但是,i=1i=0似乎没有用。如果我跑

print(data.Sex)

然后什么都没变

python pandas dataframe series
1个回答
0
投票

您正在更改元素迭代,而不是原始数据框,

尝试:

new_list = []
for element in data.Sex:
    if element == 'male':
        new_list.append(1)
    else:
        new_list.append(0)

data.Sex = new_list

我很确定有更多的pythonic /优雅方式,但这样做。

当data.Sex不是男性或女性时,还要考虑添加检查

© www.soinside.com 2019 - 2024. All rights reserved.