【问题标题】:Python extract unit of measure and attached number from column of string in ExcelPython从Excel中的字符串列中提取度量单位和附加数字
【发布时间】:2021-11-29 23:16:51
【问题描述】:

我必须为超过 1000 行中的每个字符串提取度量单位和相关数字,例如:

25 kg, 1000L

字符串如下所示:

ZALTATA MA177-445 IBCC 1000L

数字在测量单位之前。

【问题讨论】:

  • 你的例子有歧义,你应该先确定规则来决定什么是有效的单位。例如,445 IBCC 可以匹配吗?
  • 如果没有更多的明确性(如@mozway 所建议的那样),就很难知道如何提供建议或建议。也就是说,我建议您花点时间阅读regular expressions。如果您从未遇到过它们,它们一开始可能会让人望而生畏,但一旦您学会使用它们,它们对于从文本中提取信息非常强大。
  • @mozway 单位测量前有效单位最多为 4 位:KG 和 L

标签: python excel string text extract


【解决方案1】:

假设这个示例输入:

                              col
0    ZALTATA MA177-445 IBCC 1000L
1  ZALTATA MA177 445 kg IBCC 1000

你可以使用extract:

import re
df['col'].str.extract(r'\b(?P<value>\d+)\s*(?P<unit>kg|l)\b', flags=re.I)

输出:

  value unit
0  1000    L
1   445   kg

加入并保存

(df.join(df['col'].str.extract(r'\b(?P<value>\d+)\s*(?P<unit>kg|l)\b', flags=re.I))
   .to_excel('out.xslx')
)

【讨论】:

  • 非常感谢。还有一件事,我需要在描述列旁边添加“值列”和“单位列”并将其保存在 excel 中。我是 python 新手,非常感谢您的帮助
  • 你可以jointo_excel(查看更新)
  • 哇。你是专业的
  • 。我正在尝试阅读和理解您的代码。\b,\d+,\S, ?P 分别是什么意思
  • 这些是标准的正则表达式。 \b:字边界,\d+:一位或多位数字,\s:(不是\S)空格,(?P&lt;name&gt;...):命名捕获组。
猜你喜欢
  • 1970-01-01
  • 2016-03-14
  • 1970-01-01
  • 1970-01-01
  • 2018-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多