使用 str 理解清理 Pandas 数据框中的一列字符串

KevOMalley743

我有一个数据框 (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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用其他列的索引值在pandas数据框中的一列中进行字符串索引

使用列中的一部分字符串来计算并填充pandas数据框中的另一列

与str。的部分字符串匹配包含使用python / pandas的dict理解

当一列中的字符串数最大时,Pandas使用groupby转换数据帧

在 Pandas 中創建一個新列,使用多個與 str.contains() 或 str.match() 匹配的精確字符串

使用另一列中的字符串比较和更新pandas dataframe列列表

使用占位符条件连接“ pandas”中同一列中的字符串

需要帮助在 Pandas 数据框中搜索另一列中的子字符串

根据另一列中的字符串值在 pandas 数据框中修改一列

如何使用python / pandas根据一列中的字符串拆分和复制行?

使用 R 中另一个数据框中另一列中的字符串搜索一列中的字符串

使用 PANDAS 在数据框列中查找多个精确的字符串匹配

如何使用for循环在Pandas数据框的列中过滤字符串

使用pandas数据框列中的字典对象重新分配子字符串

模糊匹配一列中的字符串并使用fuzzywuzzy 创建新的数据框

使用pandas str.find方法在dataframe列中切片字符串

在pandas数据框中获取一列字符串数据,并将其拆分为单独的列

Pandas:使用规则将数据框中 2 列的字符串值合并到一个新列中

通过在 Pandas 的另一列中拆分字符串来创建新的数据框列

搜索列中的字符串并通过在 Pandas 的数据框中添加另一列来提及该字符串

从str创建数据框而无需在Python中使用Pandas

使用groupby和pandas数据框中的多列从字符串数据创建条形图

如果使用pandas与另一列的字符串匹配,如何删除列的子字符串?

Pandas DataFrame:使用列值将字符串切成另一列

在Python的一列或多列中搜索多个字符串时,如何对str.contains函数使用OR运算符?

在 Python 3 中使用 Pandas,如何过滤掉数据框中列中的重复字符串?

搜索与python中多个列中的值对应的重复字符串(最好使用pandas数据框)

在pandas数据框中使用单引号和另一个列构建字符串

如何使用包含字符串值的列表处理 Pandas 数据框列,获取唯一单词