我有一个索引为id的熊猫数据帧stations
:
id station lat lng
1 Boston 45.343 -45.333
2 New York 56.444 -35.690
我有另一个数据帧df1
,它具有以下内容:
duration date station gender
NaN 20181118 NaN M
9 20181009 2.0 F
8 20170605 1.0 F
我想添加到df1
,使其看起来像以下数据帧:
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[]
重复地做这件事,如下面的例子所示,但是我有大约200万行,结果花费了很多时间
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)
有没有更快的方法
看起来这最好通过合并来解决,合并将显著提高性能:
这将为您留下两列
station_x
和station_y
,如果您只希望站点列中包含字符串名称,则可以执行以下操作:(或者在合并之前重命名其中一个)
相关问题 更多 >
编程相关推荐