pandas - 查找和替换子字符串前的数值
问题描述
我有一个如下所示的数据框:
df['col1'].values
array(['cat 113kd29', 'do56goat24kdasd', 'pig145kd'])
我需要创建一个df['vals']
具有以下值的新列:
cat 29
do56goatasd
pig
即首先我需要查找子字符串kd
,然后找到它前面的数值。我不知道该怎么做。
每个字符串中可以有多个数值,所以我只需要在kd
. 请注意字符串“cat 113kd29”。另请查看“do56goat24kdasd”
我尝试了以下但没有奏效:
df['col1'].str.replace(r'(\d+)kd', '')
解决方案
您的调用str.replace
是正确的,但您需要将其分配给作业左侧的原始 Pandas 列:
df["col1"] = df["col1"].str.replace(r'\d+kd', '')
请注意,str.replace
默认情况下会进行全局替换,因此无需使用任何类型的标志。
推荐阅读
- android - 上传 .aab 文件后,它没有显示基于移动架构的应用程序大小
- inno-setup - 将版本添加到 Inno Setup 的 SetupWindowTitle
- java - 如何从 Java 对象获取序列化 JSON 中的枚举值
- php - PHP通过具有互联网连接的代理服务器在没有互联网连接的情况下发送电子邮件
- javascript - 似乎无法推送并返回一组对象续集查询
- sql-server - 无法保存服务器审核设置 - 在 Azure SQL 中启用审核时出错
- bash - 如何将已生成的 SSH 密钥添加到 git bash?
- python - 如何在 tkinter 的 TextWidget 中获取当前单词
- php - 在 linux 中记录脚本命令和错误
- azure - 准备微软考试的站点?