我正在尝试在pandas df上应用带有if-else条件的lambda 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)
基本上,它应该取代&#39;无&#39;值为0,其他为1
但我一直收到这个错误
df_twitter_archive_master[['col1','col2','col3','col4']].apply(lambda x: x=0 if x=='None' else x=1)
SyntaxError: invalid syntax
^在x = 1
之下 我在做错了什么? ?答案 0 :(得分:5)
IIUC
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
基于你的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
答案 1 :(得分:5)
让我们试试:
(df != 'None').astype(int)
输出:
col1 col2 col3 col4
0 0 0 0 1
1 1 0 0 0
2 0 1 0 0