pandas 如何在Python中将female和male更改为True和False

xxhby3vn  于 2023-04-18  发布在  Python
关注(0)|答案(5)|浏览(151)

我知道这是一个基本的问题,我是一个初学者,但我已经尝试了大量的方法,没有一个在我的情况下工作,所以我在这里:
如何在Python Pandas中将名为sex的列中的值female和male更改为True和False。下面的代码都没有帮助:

#change the binary variables to True and False
data2['sex'] = data2['sex'] == 'female'  

#change the binary variables to True and False
data.replace({'C2': {'X': True, 'Y': False}})

#df = pd.DataFrame({'sex':['female', 'male']})
#df

#d = {'female': True, 'male': False}
#df['sex'].map(d)

#pd.get_dummies(data2[['sex']]).head()
#data2 = pd.get_dummies(data2, columns=['sex'], prefix=['sex'], drop_first=True)
n8ghc7c1

n8ghc7c11#

我不知道你真正想要的是什么,但这似乎是一个X-Y问题。

def gender(string):
    return string == 'female'
v09wglhw

v09wglhw2#

您可以使用替换函数。只有当您将'inplace'参数设置为'True'时,它才会更改您的数据:

import pandas as pd

df = pd.DataFrame({'sex':['female', 'male']})
df.replace({'sex': {'female': True, 'male': False}}, inplace=True)

输出:

sex
0    True
1   False
rslzwgfq

rslzwgfq3#

可以尝试将apply方法与自定义函数一起使用

def sex_change(x):
    change= None
    if x == 'female':
        change= True
    else:
        change= False
    return change

# or

def sex_change(x):
    if x == 'female':
        return True
    else:
        return False

现在对dataframe使用apply方法

df['sex']= df['sex'].apply(sex_change)
js81xvg6

js81xvg64#

一个更简单的方法:

df2= df['sex'] == 'female'
df['sex'] = df2.values

或在一行中

df['sex'] = (df['sex'] == 'female').values
pbossiut

pbossiut5#

你可以改变它

df = pd.read_csv("data.csv")
df['sex'] = df['sex'].map({'Female': 0, 'Male': 1})

相关问题