亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何串聯或取消串聯 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 關注
  • 142 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號