2017-07-10 33 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

相关问题