修改以处理没有下划线的字符串:
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
str.split()
方法并带上expand=True
参数。例如:ncaa[['Win', 'Lose']] = ncaa['Record'].str.split('-', expand=True)
我认为这会起作用。这里的If...else
逻辑是为了您的额外要求,如果没有'_'
则保留原始内容。
df['Col2']= df['Col1'].apply(lambda x: x.split('_')[1] if x.find('_')!=-1 else x )
df['Col1'].str.split('_').str[-1]
解释:这是一段基于Python语言的代码。它的作用是:将数据框df中名为'Col1'的列按照下划线分隔开,并且保留分割后最后一个元素。 - cs95