Pandas:拆分一个字符串,然后创建一个新列?

时间:2017-07-10 18:31:03

标签: python pandas

enter image description here

假设你有Col1。

在Col1中拆分字符串值后,如何创建新列'Col2',直到看到_?

3 个答案:

答案 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)