Python - 根据多个其他列向列添加前缀

时间:2018-04-19 10:06:16

标签: python pandas

我仍然对python有点新意,并感谢您提供的任何帮助。 我有一个数据框(下面),我想创建一个新列,根据Identifier 1/2列中是否有内容添加前缀,如果这些列中没有任何内容,则会添加不同的前缀。

Company number  Identifier 1    Identifier 2
        123456            11    
        987656                         47861
        123987
        876324         78172    

以下df是我最终想要的样子:

Company number  Identifier 1    Identifier 2       New Column
        123456            11                   prefix1-123456
        987656                         47861   prefix2-987656
        123987                                 prefix3-123987
        876324         78172                    prefix1-78172

以下代码是我认为可行的,但我收到了一些错误:

def addPrefix(cell):
  if pd.null(df['Identifier 1']) = False:
    df['new col'] = "prefix1" + df['Company number']
  elif pd.null(df['Identifier 2']) = False:
    df['new col'] = "prefix2" + df['Company number']
  else:
    df['new col'] = "prefix3" + df['identifier']

1 个答案:

答案 0 :(得分:0)

您可以使用numpy.where

df['NewColumn'] = np.where(df['Identifier1'].notnull(), 'prefix1-',
                           np.where(df['Identifier2'].notnull(), 'prefix2-',
                                    'prefix3-')) + df['CompanyNumber'].astype(str)

<强>结果

print(df)

   CompanyNumber  Identifier1  Identifier2       NewColumn
0         123456         11.0          NaN  prefix1-123456
1         987656          NaN      47861.0  prefix2-987656
2         123987          NaN          NaN  prefix3-123987
3         876324      78172.0          NaN  prefix1-876324