python - pandas:仅当它出现在字符串中的数字之后才删除点
问题描述
我有一个如下所示的数据框:
df= pd.DataFrame(["I", "have", "5.", "apples", "."]
columns=['words'])
我只希望删除数字后面的点,而不是句末的点。(5.--> 5)
我试过
df["Words"].str.replace("\d.", "\d", regex=True)
但它发送一个错误。
解决方案
以下应该有效 - 我们需要在正则表达式中使用捕获组,以便我们知道应该用什么值替换初始值。此外,我们需要使用原始字符串文字来转义正则表达式字符串中的反斜杠。
>>> df = pd.DataFrame(["I", "have", "5.", "apples", "."],
columns=['words'])
>>> df["words"].str.replace(r"(\d)\.", r"\1")
0 I
1 have
2 5
3 apples
4 .
Name: words, dtype: object
推荐阅读
- python - 使用 pandas fillna() 的问题
- r - 如何获得自举模型或 R 中具有鲁棒 SE 的模型的标准化回归系数
- php - 将逻辑/表达式传输到嵌套 for 循环内的控制器
- java - 使用java的Calendar.add(5,1) 多次重复日期的小时数出错!
- c++ - 创建 ID2D1RenderTerget 时出现问题
- python - 加载泡菜 NotFittedError:CountVectorizer - 未安装词汇
- c# - Specflow 测试正常运行,但功能文件中的步骤不会返回,因为这些步骤未绑定到方法
- python - 交互式散景可视化 - 图形未更新
- r - R中的排名不是从1开始
- cadence-workflow - 我应该如何选择 ActivityOptions 的 ScheduleToStartTimeout 和 StartToCloseTimeout 值