根据条件用 if 语句填充 pandas 数据框中的缺失值

Filling a missing value in a pandas data frame with an if statement based on a condition

我有这个 Pandas 数据框,其中缺少一些值。例如,在第 542 行中缺少 LATITUDE 的值。我的目标是基于条件CNTY_CITY_LOC通过应用if elif和apply function in Pandas来填补LATITUDE的缺失值。 在我使用 Pandas 的应用函数应用 if 语句后,缺少的值被替换,但 LATITUDE 列中的所有其他值都丢失了。我究竟做错了什么? 感谢您的帮助

Missing values in column LATITUDE row 542

IF statement apply function

Missing values in column Latitude

第一个是必要的 return 值,如果不匹配,这里 NaN 并且为了仅替换 CA_LOCATION['LATITUDE'] 中缺失的值,使用 Series.fillna:

def CA_LATITUDE(county_CODE):
    if county_CODE == 4710:
       return 41.5188
    else:
       return np.nan

CA_LOCATION['LATITUDE'] = CA_LOCATION['LATITUDE'].fillna(CA_LOCATION.CNTY_CITY_LOC.apply(CA_LATITUDE))

最好使用 Series.fillna 和字典映射:

d= {4710:41.5188, 4711:41.5288...}
CA_LOCATION['LATITUDE'] = CA_LOCATION['LATITUDE'].fillna(CA_LOCATION.CNTY_CITY_LOC.map(d))