У меня есть Pandas DataFrame stations
с индексом в виде идентификатора:
id station lat lng
1 Boston 45.343 -45.333
2 New York 56.444 -35.690
У меня есть другой DataFrame df1
, который имеет следующее:
duration date station gender
NaN 20181118 NaN M
9 20181009 2.0 F
8 20170605 1.0 F
Я хочу добавитьна df1
, чтобы он выглядел как следующий DataFrame:
duration date station gender lat lng
NaN 20181118 NaN M nan nan
9 20181009 New York F 56.444 -35.690
8 20170605 Boston F 45.343 -45.333
Я попытался сделать это итеративно, ссылаясь на station.iloc[]
, как показано в следующем примере, но у меня есть около 2 мил строк, и он закончилсязанимая много времени.
stat_list = []
lng_list []
lat_list = []
for stat in df1:
if not np.isnan(stat):
ref = station.iloc[stat]
stat_list.append(ref.station)
lng_list.append(ref.lng)
lat_list.append(ref.lat)
else:
stat_list.append(np.nan)
lng_list.append(np.nan)
lat_list.append(np.nan)
Есть ли более быстрый способ сделать это?