【问题标题】:How to split the column string by slicing in pandas?如何通过在熊猫中切片来拆分列字符串?
【发布时间】:2021-05-15 04:04:20
【问题描述】:

我有需要用 (_) 分隔符分割的列。

这是一个示例文本“PPPP_OVS_ARG_MBC_MM-Models_RTNT_Always-On_IG VID - VW - #1 Engagement _ FY21 _ Febrero _ 202102 _ Falta OP"

我可以使用分割它

df['Name'].str.rsplit("_", expand=True)[0]
df['Name'].str.rsplit("_", expand=True)[1]
df['Name'].str.rsplit("_", expand=True)[2]
df['Name'].str.rsplit("_", expand=True)[3]

在此之后我不想拆分,我只需要获取整个字符串

"MM-Models_RTNT_Always-On_IG VID - VW - #1 Engagement _ FY21 _ Febrero _ 202102 _ Falta OP"

..有什么办法可以切片吗?

【问题讨论】:

    标签: python pandas split slice


    【解决方案1】:

    使用str.split(series,expand=True)join

    print(df)
    
    
                  Name
    0       PPPP_OVS_ARG_MBC_MM-Models_RTNT_Always-On...
    1       PPPP_OVS_ARG_MBC_MM-Models_RTNT_Always-On...
    

    s = df['Name'].str.split('_',expand=True)
    
    
    df1 = df.join(
        s.iloc[:,:3].join(
            s.iloc[:,3:].agg('_'.join,axis=1).to_frame('string')
                )
            )
    

    print(df1)
    

    编辑以获取最后一个值。

    df['last_value'] = df['Name'].str.split('_',expand=True).iloc[:,3]
    

    【讨论】:

    • 谢谢,但我只需要单独列中的最后一个值
    • @s_khan92 它位于一个名为 string 的单独列中?
    • 但它创建了其他额外的列 0,1,2 等
    • 酷。现在它完美但没有最后一个分号df['last_value'] = df['Name'].str.split('_',expand=True).iloc[:,3]
    • @s_khan92 谢谢我没有测试它,对不起我之前的库尔特回复,但请阅读How to Askminimal reproducible example
    【解决方案2】:

    你可以试试这个。

    df['Name'].str.split("_", 4)
    

    这将返回一个这样的列表。

    [PPPP, OVS, ARG, MBC, MM-Models_RTNT_Always-On_IG VID - VW - #1 Engagement _ FY21 _ Febrero _ 202102 _ Falta OP]
    

    【讨论】:

    • 谢谢,但我只需要单独列中的最后一个值
    【解决方案3】:

    这应该可行。

    df['New Column'] = df['Name'].apply(lambda x: x.split('_', 4)[-1])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-05
      • 2020-10-16
      • 2016-09-16
      • 2018-10-04
      • 1970-01-01
      • 2019-02-12
      • 2022-06-11
      • 2019-05-17
      相关资源
      最近更新 更多