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

我是 python 新手,想了解如何使用数据框


我有一个数据框-


 desc13month

Out[45]: 

                                            OutputValues  CntOutputValues

0                                  12-99-Annual (AE)                  217

1             21-581-Ineligible  Services(IPS)                        210

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

3                                  22-99-Annual (AE)                  181

4                                  21-50-Prime (PE)                  169

我希望 OutputValues 列不串联。如果您注意到,最后一个字符串(例如“Annual”)取决于第二个字符串 99。如果它是 22,它将更改为 Jermaine。有时可能会有多个,就像我们在第 2 行看到的那样。我的最终输出应该指示这些列和一个附加的具有最后一个字符串的列


插图-


desc13month

Out[45]: 

                                            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)


扬帆大鱼
浏览 117回答 2
2回答

温温酱

IIUC,让我们尝试一下Series.str.replace:df['final'] = df['OutputValues'].str.replace(r'\d+-\d+-', '')                              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)

暮色呼如

您的问题有两个部分,一个是处理字符串,另一个是将其应用于数据框。为了处理字符串,如果模式保持相同的含义,您确定每个字符串都是数字-数字-字符,并且多个值用“,”分隔,那么您可以使用类似以下函数: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”的新列中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python