在lambda函数中跳过Nans的本机方法?

问题描述 投票:1回答:2

我想知道是否有一个本地方法来跳过lambda函数中的nans。我在下面的表格中有数据框'y'。我试图将Year列变为整数。但由于NaN,lambda函数会中断。我想出了下面的内容,但我想知道是否有更好的方法可以解决这个普遍存在的问题?谢谢!

       Year
137    2005
138     NaN

要处理它,我只是使用try / except。我想知道是否有更好的方法来处理NaNs。

def turn_int(x):
    try:
        return int(x)
    except:
        return np.nan

y.Year.apply(lambda x: turn_int(x)) 
pandas nan
2个回答
1
投票

int没有NaN的代表。处理它的正常方法是首先删除所有NaN:

year = y.Year.dropna().astype(int)

0
投票

我已经为int系列做了这个。

import numpy as np
y['year'] = y['year'].apply(lambda x:x if np.isnan(x) else int(x))
© www.soinside.com 2019 - 2024. All rights reserved.