pandas dataframe应用lambda if else erro

ike*_*kel 1 python lambda pandas

我正在尝试将lambda与if-else条件应用于pandas df df如下所示:

col1 col2 col3 col4 <---column names
None None None col4 <---column values in str
col1 None None None
None col2 None None



df_twitter_archive_master[['col1','col2','col3','col4']].apply(lambda x: x=0 if x=='None' else x=1)
Run Code Online (Sandbox Code Playgroud)

基本上,它应该用0替换'None'值,否则用1替换但是我一直得到这个错误

df_twitter_archive_master[['col1','col2','col3','col4']].apply(lambda x: x=0 if x=='None' else x=1)

SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

^在x = 1下

我究竟做错了什么??

WeN*_*Ben 5

联合会

df.replace('None',np.nan).notnull().astype(int)
Out[31]: 
   col1  col2  col3  col4
0     0     0     0     1
1     1     0     0     0
2     0     1     0     0
Run Code Online (Sandbox Code Playgroud)

根据您的lambda方法

df.applymap(lambda x: 0 if x=='None' else 1)
Out[33]: 
   col1  col2  col3  col4
0     0     0     0     1
1     1     0     0     0
2     0     1     0     0
Run Code Online (Sandbox Code Playgroud)


Sco*_*ton 5

我们试试吧:

(df != 'None').astype(int)
Run Code Online (Sandbox Code Playgroud)

输出:

   col1  col2  col3  col4
0     0     0     0     1
1     1     0     0     0
2     0     1     0     0
Run Code Online (Sandbox Code Playgroud)