2017-07-10 32 views

回答

4

編輯處理字符串沒有 '_':

df['Col2'] = (np.where(df['Col1'].str.contains('_'), 
        df['Col1'].str.split('_').str[1], 
        df['Col1'])) 

OR爲COLDSPEED建議在評論:

df['Col1'].str.split('_').str[-1] 

您可以使用索引的名爲.str訪問:

df['Col2'] = df['Col1'].str.split('_').str[1] 

例如:

df = pd.DataFrame({'Col1':['Name_John','Name_Jay','Name_Sherry']}) 
df['Col2'] = df['Col1'].str.split('_').str[1] 

輸出:

  Col1 Col2 
0 Name_John John 
1  Name_Jay  Jay 
2 Name_Sherry Sherry 
+0

非常感謝您的回答。這工作得很好。有時,Col1的值爲「櫻桃」,這意味着在櫻桃前沒有Name_。我如何實現這一點,以便Col2在它前面沒有Name_時仍然會有Cherry? –

+1

@JunJang'df ['Col1']。str.split('_')。str [-1]' –

1

我認爲這會工作。這裏If...else邏輯是你的額外要求,如果沒有'_'保持原有

df['Col2']= df['Col1'].apply(lambda x: x.split('_')[1] if x.find('_')!=-1 else x) 
+0

perfect !!非常感謝! –

+0

很高興幫助〜! – Wen

相關問題