gpt4 book ai didi

python - 使用正则表达式和 pandas 分隔字母和数字

转载 作者:行者123 更新时间:2023-12-01 02:07:47 24 4
gpt4 key购买 nike

我有一个来自 Pandas 数据框 df 的名为“value”的列,它混合了数字和单词。它看起来像这样:

   VALUE
0 done
1 Yes
2 3.45
3 2bc

我想将该列拆分为两列,其中左侧一列仅包含字母,右侧一列仅包含数字。理想情况下,结果应该是:

     0    1
0 done NaN
1 Yes NaN
2 NaN 3.45
3 bc 2

我尝试使用 .str.extract pandas 函数,如下所示:

df['value'].str.extract('([A-Za-z]+)?([0-9]*[.]?[0-9]+)')

我得到的结果类似于以下内容:

    0    1
0 NaN NaN
1 NaN NaN
2 NaN 3.45
3 NaN NaN

其中的单词没有按其应有的方式显示在第 0 列中。

有谁知道在 pandas/python 中执行此类操作的原因或更好的方法吗?

最佳答案

修复您的模式,并使用str.extractall:

(df.VALUE.str.extractall('(\d+(?:\.\d+)?)|([^\d.]+)')
.unstack()
.groupby(level=0, axis=1)
.first())

0 1
0 NaN done
1 NaN Yes
2 3.45 NaN
3 2 bc

关于python - 使用正则表达式和 pandas 分隔字母和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48899041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com