python - Pandas .title() 当字符串有一个 's

标签 python pandas

我将 Pandas 数据框中的字符串转换为标题大小写。但是,当我这样做时,紧跟在撇号之后的任何内容也会变成大写。我该如何纠正这个问题?

df[cols] = df[cols].apply(lambda x: x.str.title())
df['name'] = df['name'].replace("\'S", "\'s")
df.head()

enter image description here

最佳答案

如果您想避免“稍后修复”,一个想法可能是将字符串拆分为每个单词的空格和大写首字母:

df[cols] = df[cols].applymap(
    lambda string: ' '.join(map(str.capitalize, string.split()))
)

根据@shriakhilc 有趣的建议,还有一个等效的内置方法可以使用 string.capwords 执行此操作方法:

from string import capwords

df[cols] = df[cols].applymap(capwords)

关于python - Pandas .title() 当字符串有一个 's,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72175418/

相关文章:

python - Django - 将命令传递给 shell

有效处理可变数量的返回参数的 Pythonic 方法

python - 使用 Python 接受 MS Word 文档中的所有更改

python - 特征缩放(标准化)以及 LabelEncode 和 OneHotEncode 数据的最佳实践是什么

Python生成滚动窗口计算相关性

python - 如何在Python中以更简洁的方式传递多个参数

python - 如何通过正则表达式解析 gcc 输出以获取默认包含路径?

python - Matplotlib 绘制报价之间的市场(X 轴)

python - 使用 pandas 按一列一行中的值按字母顺序对数据框进行排序

python - 提取 Pandas 中的以下所有行