2014-03-13 21 views
0

我需要在一個大熊貓列中使用無操作的操作。
使用以下方法不起作用。任何想法爲什麼?強制大熊貓接受無操作命令

df['flag'] = filtered.map(lambda x: 'N' if x else pass) 
+1

你想跳過行或保留原來的價值?如果你想保留這個值,那麼你可以只做'df ['flag'] = filtered.map(lambda x:'N',如果x else x)' – EdChum

+0

否則你可以只過濾NaN(我假設如果沒有樣本數據和代碼,難以分辨),並應用該映射:'df ['flag'] = filtered.notnull()。map('N')' – EdChum

回答

4

您的語法無效。 pass是一個statement,你不能在條件表達式,在許多其他情況下使用它。請參閱:

>>> True if False else pass # inappropriate use 
    File "<stdin>", line 1 
    True if False else pass 
         ^
SyntaxError: invalid syntax 

>>> if pass: # inappropriate use 
    File "<stdin>", line 1 
    if pass: 
     ^
SyntaxError: invalid syntax 

>>> set(pass) # inappropriate use 
    File "<stdin>", line 1 
    set(pass) 
     ^
SyntaxError: invalid syntax 

>>> a = [ pass ] # inappropriate use 
    File "<stdin>", line 1 
    a = [ pass ] 
      ^
SyntaxError: invalid syntax 

>>> def lazy_function(): # good use 
... pass 
... 

在您的代碼,請返回空字符串,而不是(或任何其他值):

df['flag'] = filtered.map(lambda x: 'N' if x else '') 
+1

+1。作爲替代,你可以使用'numpy.nan'作爲填充值。 *可能*在路上更方便。 –