我有一个数据框(df1),它是根据调查结果构建的,参与者将其性别作为字符串输入,因此有一个性别列,如下所示:
id gender age
1 Male 19
2 F 22
3 male 20
4 Woman 32
5 female 26
6 Male 22
7 make 24
等等
我一直在用
df1.replace('male', 'Male')
例如,但这非常笨重,并且需要知道每个响应的确切格式才能修复它。
我一直在尝试在Pandas中使用各种字符串理解和字符串操作,例如.split(),. renplace()和.capitalize(),使用np.where()来尝试获取:
id gender age
1 Male 19
2 Female 22
3 Male 20
4 Female 32
5 Female 26
6 Male 22
7 Male 24
我敢肯定必须有一种方法可以使用正则表达式来做到这一点,但我似乎无法正确使用代码。
解决办法:调整我的注释中的代码,用以下单词替换以f开头的每个记录:
df1["gender"] = df1.gender.apply(lambda s: re.sub(
"(^F)([A-Za-z]+)*", # pattern
"Female", # replace
s.strip().title()) # string
)
类似地,对于具有M的模式中的F并且替换为男性的男性。
我知道这可能是一个多步骤的过程,即删除“”,然后将条目大写,然后替换大写值。








暂无数据