为什么此代码不循环遍历Series并替换值?

时间:2019-03-14 16:55:22

标签: python pandas dataframe series

# 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)

然后什么都没有改变

1 个答案:

答案 0 :(得分: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 / elegant方法,但这可以做到。

也可以考虑在数据时添加检查。性别既不是男性也不是女性