热线电话:13121318867

登录
2019-02-25 阅读量: 690
用str comprehension清理pandas数据帧

我有一个数据框(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并且替换为男性的男性。

我知道这可能是一个多步骤的过程,即删除“”,然后将条目大写,然后替换大写值。

0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子