为了账号安全,请及时绑定邮箱和手机立即绑定

如何串联或取消串联 pandas 数据框中的字符串值?

如何串联或取消串联 pandas 数据框中的字符串值?

扬帆大鱼 2023-10-18 21:26:44
我是 python 新手,想了解如何使用数据框我有一个数据框- desc13monthOut[45]:                                             OutputValues  CntOutputValues0                                  12-99-Annual (AE)                  2171             21-581-Ineligible  Services(IPS)                        2102      125-99-Annual (AE),126-22-Jermaine (JE)                        1963                                  22-99-Annual (AE)                  1814                                  21-50-Prime (PE)                  169我希望 OutputValues 列不串联。如果您注意到,最后一个字符串(例如“Annual”)取决于第二个字符串 99。如果它是 22,它将更改为 Jermaine。有时可能会有多个,就像我们在第 2 行看到的那样。我的最终输出应该指示这些列和一个附加的具有最后一个字符串的列插图-desc13monthOut[45]:                                             OutputValues  CntOutputValues   final0                                  12-99-Annual (AE)                  217   Annual (AE)1             21-581-Ineligible  Services(IPS)                        210   Ineligible  Services(IPS) 2      125-99-Annual (AE),126-22-Jermaine (JE)                        196   Annual (AE),Jermaine (JE) 3                                  22-99-Annual (AE)                  181   Annual (AE)4                                  21-50-Prime (PE)                   169   Prime (PE)
查看完整描述

2 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

IIUC,让我们尝试一下Series.str.replace:


df['final'] = df['OutputValues'].str.replace(r'\d+-\d+-', '')

                              OutputValues  CntOutputValues                      final

0                        12-99-Annual (AE)              217                Annual (AE)

1         21-581-Ineligible  Services(IPS)              210  Ineligible  Services(IPS)

2  125-99-Annual (AE),126-22-Jermaine (JE)              196  Annual (AE),Jermaine (JE)

3                        22-99-Annual (AE)              181                Annual (AE)

4                         21-50-Prime (PE)              169                 Prime (PE)



查看完整回答
反对 回复 2023-10-18
?
暮色呼如

TA贡献1853条经验 获得超9个赞

您的问题有两个部分,一个是处理字符串,另一个是将其应用于数据框。为了处理字符串,如果模式保持相同的含义,您确定每个字符串都是数字-数字-字符,并且多个值用“,”分隔,那么您可以使用类似以下函数:


def deconcat(output_value):

    output_value = output_value.split(',')

    result = ''

    for part in output_value:

        _, _, item = part.split('-')

        result += item + ", "

    return result.rstrip(', ')

该函数接受一个字符串,如果有多个值,则用“,”分隔它,然后对于每个值,用“-”分隔并将第三部分添加到结果字符串中。


现在您只需将此函数应用于整个数据框并创建新列:


df['final'] = df.OutputValues.apply(deconcat)

这会将函数应用于数据框中 OutputValues 的每一行,并将结果字符串添加到名为“final”的新列中。


查看完整回答
反对 回复 2023-10-18
  • 2 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信