根据条件添加一个二进制列
我有一个像这样的数据框“veh_contract2_df”:
FUEL_CODE FUEL_TYPE
1 MARGE+PLUS
10 DIESEL
我想添加一列“混合”,如果 FUEL_TYPE 中有“+”,则应包含“Y”,否则应包含“N”。
sub_str = "+"
if(veh_contract2_df.loc[(veh_contract2_df['FUEL_TYPE'].find(sub_str)==-1)]):
veh_contract2_df['HYBRIDE'] = "Y"
else:
veh_contract2_df['HYBRIDE'] ="N"
但是我收到了这个错误:SyntaxError: invalid syntax (在第 71 行)
请问有什么想法吗?谢谢
回答
使用numpy.where:
In [1923]: import numpy as np
In [1924]: df['hybrid'] = np.where(df.FUEL_TYPE.str.contains('+', regex=False), 'Y', 'N')
In [1925]: df
Out[1925]:
FUEL_CODE FUEL_TYPE hybrid
0 1 MARGE+PLUS Y
1 10 DIESEL N