如果當前值爲'...',我有以下函數可將列'A'的值更改爲np.NaN。但是,由於某種原因,沒有任何變化。lambda表達式不會更改pandas數據幀的值
def findEmpty(row):
row['A'] = np.NaN
energy[energy['A'] == '...'].apply(lambda x:findEmpty(x))
有人能幫忙嗎?
如果當前值爲'...',我有以下函數可將列'A'的值更改爲np.NaN。但是,由於某種原因,沒有任何變化。lambda表達式不會更改pandas數據幀的值
def findEmpty(row):
row['A'] = np.NaN
energy[energy['A'] == '...'].apply(lambda x:findEmpty(x))
有人能幫忙嗎?
這裏是一個更有效的解決方案
energy.ix[(energy['A'] == '...'), 'A'] = np.NaN
注意lambda函數是純Python。換句話說,當你這樣做的時候,你基本上會拋棄熊貓的所有不錯的C速度。如果使用大型數據集,總是儘量避免循環和lambda函數(如果可能)
熊貓apply
與應用價值返回DataFrame
。 試試這個:
energy = energy[energy['A'] == '...'].apply(lambda x:findEmpty(x))
大熊貓有這將提高可讀性
energy.replace('...', np.NaN, inplace=True)
你爲什麼不使用fillna一個「替代」的方法? http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html – anshanno
我正在學習Python,我想知道如何在這種情況下使用lambda。 @anshanno – renakre
你可以發佈樣本數據嗎? – anshanno