标题:NumPy 数组中批量清理字符串:去除空格与替换逗号为小数点

标题:NumPy 数组中批量清理字符串:去除空格与替换逗号为小数点

本文介绍如何对 numpy 字符串数组中的每个元素统一执行文本清洗操作——移除所有空格、将半角逗号(,)替换为英文小数点(.),适用于金融数据、csv 导入后格式标准化等场景。

在处理从波兰证券交易所等来源获取的结构化文本数据时,常见数值字段(如成交额、市盈率)以带空格分隔的千位格式(如 ‘1 386 216 000’)和欧洲风格小数(如 ‘0,891’)存储。这类数据直接用于数值计算前,必须清洗为标准数字格式(如 ‘1386216000’ 和 ‘0.891’)。由于原始数据已加载为 dtype=’

推荐使用 np.vectorize 封装纯字符串处理函数,既保持代码简洁,又充分利用 NumPy 的广播能力。核心逻辑仅需两步:先用 .replace(‘ ‘, ”) 删除全部空格;再用 .replace(‘,’, ‘.’) 将逗号转为小数点。注意该顺序不可颠倒——若先替换逗号,后续去空格可能误删其他位置的空格(尽管本例中无此风险,但属良好实践)。

以下是完整可运行示例:

import numpy as np

# 原始数据(已定义为 

注意事项:

Krea AI

Krea AI

多功能的一站式AI图像生成和编辑平台

下载

  • np.vectorize 并非真正意义上的底层向量化(不提升 C 层性能),但对
  • 若后续需将清洗后的字符串转为数值(如 float 或 int),建议使用 processed_data.astype(float) —— 此时需确保所有列均为有效数字格式(如股票代码列 'ALIOR' 会报错,应按列选择性转换);
  • 对于超大规模数组(千万级元素),可考虑结合 numba 或 pandas.Series.str(先转 DataFrame)进一步优化,但本方案已满足绝大多数业务场景需求。

该方法简洁、可靠、易维护,是 NumPy 字符串预处理的标准实践之一。

https://www.php.cn/faq/2023671.html

发表回复

Your email address will not be published. Required fields are marked *