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)

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”的新列中。
添加回答
舉報