【问题标题】:Splitting the prices (Number values £s) from within the text?从文本中拆分价格(数值£s)?
【发布时间】:2022-01-03 22:58:54
【问题描述】:

我有一个表格列 (df1['income']),如下所示,我只想提取第一个价格。

Income
Approx £1,000000 £2 psf
£1,000,050 £4psf
£15000000 £3psf
Expected £520000 £3.2 psf
df1['Income'].str.split(r'\£.........',)
pattern = re.compile(r'\£.........')
matches = pattern.finditer(str(df1['Income']))

for match in matches:
    print(match)

问题是第一个代码提取了价格,第二个代码删除了所有字符,而不是按照我想要的方式拆分它们。

非常感谢所有帮助,谢谢。

【问题讨论】:

    标签: python pandas jupyter-notebook


    【解决方案1】:

    假设您提供的是真实数据的真实表示,您可以在 £ 符号的第二次出现时使用 rsplit(),并获取每个列表的第二个元素 str[1]

    df['1st_price'] = df.Income.str.rsplit('£',2).str[1].str.replace(',','').astype(int)
    
    >>> df
                          Income  1st_price
    0    Approx £1,000000 £2 psf    1000000
    1           £1,000,050 £4psf    1000050
    2            £15000000 £3psf   15000000
    3  Expected £520000 £3.2 psf     520000
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-20
      • 1970-01-01
      • 1970-01-01
      • 2021-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多