【问题标题】:Pandas extrac number with a decimal operator afer $ from a stringPandas 使用小数运算符从字符串中提取数字提供 $
【发布时间】:2021-05-08 13:17:27
【问题描述】:

还有几个similar questions,我仍然无法解决我的问题。

我有一个来自扑克游戏的 pandas 列,并且想从中分析底池大小,因此我需要在 $ 之后提取数字(使用 . 小数分隔符)。该列如下所示:

Action
Player (8, 5) won the $5.40 main pot with a Straight
...
Player (A, 2) won the $21.00 main pot with a flush
...

当我跑步时:df['number'] = df['action'].str.extract('([0-9][,.]*[0-9]*)') 它没有给我预期的结果,结果应该是:

number
5.40
...
21.00

【问题讨论】:

标签: python regex pandas


【解决方案1】:

你可以使用

>>> import pandas as pd
>>> df = pd.DataFrame({'action':['Player (8, 5) won the $5.40 main pot with a Straight','Player (A, 2) won the $21.00 main pot with a flush']})
>>> df['action'].str.extract(r'\$(\d+(?:[,.]\d+)*)', expand=False)
0     5.40
1    21.00
Name: Action, dtype: object

\$(\d+(?:[,.]\d+)*) 模式匹配文字 $ 符号,然后将任何一个或多个数字,然后是零个或多个 ,. 序列,然后是一个或多个数字捕获到第 1 组。

请参阅regex demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-07
    • 2020-09-30
    • 2014-04-16
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    相关资源
    最近更新 更多