小编Cam*_*593的帖子

使用正则表达式在 Pandas 数据框中创建新列

我在 Pandas df 类型object中有一个列,我想解析它以获取字符串中的第一个数字,并创建一个包含该数字的新列作为int.

例如:

现有的df

    col
    'foo 12 bar 8'
    'bar 3 foo'
    'bar 32bar 98'
Run Code Online (Sandbox Code Playgroud)

所需的 df

    col               col1
    'foo 12 bar 8'    12
    'bar 3 foo'       3
    'bar 32bar 98'    32
Run Code Online (Sandbox Code Playgroud)

我有适用于列系列中任何单个单元格的代码

int(re.search(r'\d+', df.iloc[0]['col']).group())

上面的代码工作正常并返回 12 。但是当我尝试使用整个系列创建一个新列时:

df['col1'] = int(re.search(r'\d+', df['col']).group())

我收到以下错误:

类型错误:预期的字符串或类似字节的对象

我想一个包裹str()围绕df['col']这摆脱了错误,但取得了全0在COL1

我还尝试转换col为 a listof 字符串并遍历list,这只会产生相同的错误。有谁知道我做错了什么?帮助将不胜感激。

python regex pandas

6
推荐指数
1
解决办法
9476
查看次数

标签 统计

pandas ×1

python ×1

regex ×1