我仍然对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']
答案 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