我有一个参考数据框:
例如:
time latitude longtitude pm2.5
0 . 0 0 0
1 . 0 5 1
......
我有
的查询例如:
time latitude longtitude
0 . 1 3
1 . 0 5
.......
我想得到与查询中的行匹配的pm2.5。
我使用了行的迭代但看起来很慢。
predications_phy = []
for index, row in X_test.iterrows():
Y = phyDf[(phyDf["time"] == row["time"]) & (phyDf["latitude"] == row["latitude"]) & (phyDf["longtitude"] == row["longtitude"])]
predications_phy.append(Y)
获取行的有效且正确的方法是什么?
答案 0 :(得分:2)
鉴于参考数据框df1
和查询数据框df2
,您可以执行左合并以提取结果:
res = df2.merge(df1, how='left')
print(res)
# time latitude longtitude pm2.5
# 0 0 1 3 NaN
# 1 1 0 5 1.0
非常不鼓励循环,除非您的操作无法进行矢量化。