Python 如何选择列出列具有 NaN 条目的所有 DataFrame 行

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

我有一个包含 2 列的 DataFrame(20k 行),如果第一列(纬度)行条目为 NaN,我想更新。我想使用下面的代码,因为它可能是一种快速的方法,但我不确定如何更新此行

msk = [isinstance(row, float) for row in df['latitude'].tolist()]
以获取仅 NaN 的行。我正在检查的纬度列是浮动的,因此这行代码返回所有行。

def boolean_mask_loop(df):

    msk = [isinstance(row, float) for row in df['latitude'].tolist()]

    out = []
    for target in df.loc[msk, 'address'].tolist():
        dict_temp = geocoding(target)
        out.append([dict_temp['lat'], dict_temp['long']])

    df.loc[msk, ['latitude', 'longitude']] = out
    
    return df
id 地址 纬度 经度
1 地址1 NaN NaN
2 地址2 NaN NaN
3 地址3 40.7526 -74.0016
python dataframe for-loop
1个回答
0
投票

我将这行代码

 msk = [isinstance(row, float) for row in df['latitude'].tolist()]
修改为
msk = df['latitude'].isnull().tolist()
,它本质上标识了我想要更新的纬度列中具有 NaN 值的那些行。感谢@Anerdw 的建议。

© www.soinside.com 2019 - 2024. All rights reserved.