【问题标题】:Use position of character in a string to remove part of a string in a dataframe column [duplicate]使用字符串中字符的位置删除数据框列中的部分字符串[重复]
【发布时间】:2021-11-05 02:11:44
【问题描述】:

我有一个数据框,其中有一列包含字符串,其中每行中的字符数不同:

例如

"LOCATION_B A PP E1"
"POSITION_P&A F A M"

我想删除下划线及其右侧的所有内容。

如果我知道字符数 n,这将起作用:

df[0] = df[0].str[:n]

因此,为了对 DataFrame 执行此操作,我使用以下内容来查找最右边下划线的位置并将其删除以及之后的所有内容:

df[0] = df[0].str[:(df[0].str.rfind('_'))]

这将返回 NaN。任何关于为什么会发生这种情况或如何解决它的想法将不胜感激。

【问题讨论】:

    标签: python pandas string dataframe


    【解决方案1】:

    试试:

    df[0] = df[0].str.split('_').str[0]
    

    或者:

    df[0] = df[0].str.partition('_')[0]
    

    【讨论】:

    • wiki 又来了一次?
    • 谢谢!我对此稍作修改以删除最右边的下划线及其右侧的所有内容:df[0] = df[0].str.split('_').str[:-1].str.join("_")
    【解决方案2】:

    试试这个:

    df[0] = df[0].apply(lambda x : x.split('_')[0])
    

    【讨论】:

    • 这里出现属性错误:AttributeError: 'float' object has no attribute 'split'
    • @brendan1229 是 df[0] 值字符串还是浮点数?
    猜你喜欢
    • 1970-01-01
    • 2012-06-22
    • 2012-05-09
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 2021-01-14
    相关资源
    最近更新 更多