根据条件用 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))
我有这个 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))