根据条件添加一个二进制列

我有一个像这样的数据框“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


以上是根据条件添加一个二进制列的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>