python - 从熊猫中的字符串中提取带小数的数字
问题描述
我的 pandas 数据框中的一列由数字和字符串值组成。我尝试了几个答案,但我得到了已经只包含数值的单元格的 NaN 值。
例子
Column1
Oh great, 10,7
Awesome, 20.3
1.5
Vaaw, 9/10
100
代码:
df['Column1'] = df['Column1'].str.extract('([0-9][,.]*[0-9]*)')
例如,对于第三行和第四行,我得到了 Nan。我可以在第四排保持 9/10
解决方案
你很亲密。
df['Column1'] = df['Column1'].str.extract('([0-9]+[,./]*[0-9]*)')
#df
Column1
0 10,7
1 20.3
2 1.5
3 9/10
另一个可能的正则表达式如下。在此示例中它将产生相同的结果,但更“通用”。它说查找数字,后跟(可能)除空格以外的任何内容,然后是(可能)更多数字。"hello 10f7"
对于像返回这样的字符串,它将失败10f7
。因此,这取决于您对数据质量的了解。
df['Column1'] = df['Column1'].str.extract('(\d+\W*\d*)')
推荐阅读
- racket - 字符串前缀?\在模块中获取错误未绑定标识符
- python - numpy:用 2d 插值调整 3d 数组的大小
- javascript - 停止在本机反应中重新渲染特定视图
- python - 如何使用 Python 从 7z 文件中提取或读取 csv 文件?
- firebase - 使用 Firebase、Nodemailer 和 Zoho 发送邮件时出错
- c# - 使用 C# 进程执行批处理文件
- ios - 项目在 Swift 中时无法从 Objective-C 访问 swift 类
- splunk - Splunk:Splunk-python SDK:如何包含 pandas、numpy 来创建自定义命令
- oauth-2.0 - hwi_oauth 无法连接到 FOS_OAUTH_SERVER
- python-3.x - Python程序将毫秒转换为小时,分钟和秒逻辑错误