答案 0 :(得分:7)
编辑以处理没有' _':
的字符串df['Col2'] = (np.where(df['Col1'].str.contains('_'),
df['Col1'].str.split('_').str[1],
df['Col1']))
或者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
答案 1 :(得分:2)
我认为这会奏效。这里的If...else
逻辑是为了您的额外请求,当没有'_'
保留原始
df['Col2']= df['Col1'].apply(lambda x: x.split('_')[1] if x.find('_')!=-1 else x )
答案 2 :(得分:1)
您可以简单地将str.split()
方法与expand=True
参数一起使用。
例如:
ncaa[['Win', 'Lose']] = ncaa['Record'].str.split('-', expand=True)