Pandas从数据帧中获取行的值

时间:2018-04-16 21:31:21

标签: python python-3.x pandas scikit-learn

我有一个参考数据框:

例如:

  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)

获取行的有效且正确的方法是什么?

1 个答案:

答案 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

非常不鼓励循环,除非您的操作无法进行矢量化。