我有一个数据框 (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()、.replace() 和 .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
我确信一定有一种方法可以使用正则表达式来做到这一点,但我似乎无法正确获取代码。
我知道这可能是一个多步骤的过程,即删除“”,然后将条目大写,然后替换大写的值。
任何指导将不胜感激pythonistas!
凯夫
修改我的注释中的代码,将每条以 f 开头的记录替换为女性一词:
df1["gender"] = df1.gender.apply(lambda s: re.sub(
"(^F)([A-Za-z]+)*", # pattern
"Female", # replace
s.strip().title()) # string
)
同样,对于模式中的 F 和 M 并替换为男性的男性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句