Skip to main content
 首页 » 编程设计

python之根据另一列的值在 Pandas 中创建新列

2025年05月04日12powertoolsteam

我有一些关于不同个体性别的数据集。比方说,数据集看起来像这样:

Male 
Female 
Male and Female 
Male 
Male 
Female 
Trans 
Unknown 
Male and Female 

有些人认为自己是男性,有些人认为自己是男性和女性。

现在,我想做的是在 Pandas 中创建一个新的列来映射

Males to 1,  
Females to 2, 
Others to 3 

我写了一些代码

def gender(x): 
    if x.str.contains("Male") 
        return 1 
    elif x.str.contains("Female") 
        return 2 
    elif return 3 
 
df["Gender Values"] = df["Gender"].apply(gender) 

但我得到的错误是函数不包含任何属性。我尝试删除 str:

x.contains("Male") 

我遇到了同样的错误

有更好的方法吗?

请您参考如下方法:

您可以使用:

def gender(x): 
    if "Female" in x and "Male" in x: 
        return 3 
    elif "Male" in x: 
        return 1 
    elif "Female" in x: 
        return 2 
    else: return 4 
 
df["Gender Values"] = df["Gender"].apply(gender) 
 
print (df) 
            Gender  Gender Values 
0             Male              1 
1           Female              2 
2  Male and Female              3 
3             Male              1 
4             Male              1 
5           Female              2 
6            Trans              4 
7          Unknown              4 
8  Male and Female              3