【问题标题】:Match number at the start of string [duplicate]匹配字符串开头的数字[重复]
【发布时间】:2020-08-30 14:40:36
【问题描述】:

我正在从事一个数据科学项目,我需要从“内容持续时间”列中提取小时数,该列具有“2.5 小时”等实例。 我尝试运行以下代码:

df['num_hours'] = df['content_duration'].str.extract('(^\d*)')

但它的输出返回“2”,这意味着它排除了“。”之后的所有内容。 此外,“内容持续时间”的某些实例类似于“39 小时”,因此仅提取 39

那么,如何提取除“内容持续时间”列中的字符串之外的所有内容?

【问题讨论】:

  • 你能提供一个你想从中提取的示例字符串吗?
  • 可以工作但不确定其他样本\d*\.\d+
  • ('^\d*.\d*') 这很好用。

标签: python regex pandas dataframe extract


【解决方案1】:

据我了解,您想提取字符串开头的数字,可能包含也可能不包含小数点。

如果您知道数据格式清晰(保证所有输入都有效),那么^([\d.]+) 将起作用。这将匹配所有数字字符和“。”字符串开头的字符。鉴于输入的第一个标记只有一个小数点,否则由数字组成,这应该与您想要的匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    相关资源
    最近更新 更多