代码之家  ›  专栏  ›  技术社区  ›  jovicbg

传递的项数错误4,使用regex提取时,placement表示1

  •  1
  • jovicbg  · 技术社区  · 7 年前

    我的数据帧中有这样的列(约200万行):

    column
    1/20/1"ADAF"
    1/4/551BSSS
    1/2/1AAAA
    1/565/1 "AAA="
    

    我只想提取:

    1/20/1
    1/4/551
    1/2/1
    1/565/1
    

    df['wanted_column'] = df['column'].str.extract(r'((\d+)/(\d+)/(\d+))', expand=True)
    

    但我有个错误:

    ValueError: Wrong number of items passed 4, placement implies 1
    

    有人知道我错在哪里吗?如果有更好更快的解决方案,我会感谢你的建议。

    提前谢谢。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Wiktor Stribiżew    7 年前

    你可以用

    df['wanted_column'] = df['column'].str.extract(r'(\d+/\d+/\d+)', expand=True)
                                                     ^           ^
    

    关键是在正则表达式中使用单个捕获组时,只使用它 str.extract .