我对编程并不完全陌生,但是对多维数据结构的使用却很陌生。如果这过于简单,我深表歉意,但是我已经坚持了几天,如果有人能向我指出正确的方向,我将不胜感激。
我有:
big_df ->包含约3,000,000行和约80列的df。其中三列包含坐标数据X,Y,Z
arr ->单独的3D X,Y,Z数据数组,包含约4000个数据点
我的目标是创建一个新的df,其中包含 big_df 中的行,其中 big_df(X,Y,Z)== arr(X,Y,Z) < / p>
我已经尝试了许多不同的方法,而且我知道我可以迭代并匹配该方法……但这将效率非常低下,并且肯定存在矢量化解决方案。
这是我目前所在的位置:
result = big_df.loc[(big_df["X"] == arr[:, 0])
& (big_df["Y"] == arr[:, 1])
& (big_df["Z"] == arr[:, 2]))]
当我知道有4075个匹配项时,此特定版本将返回1行....
我已经尝试了几种方法,但是在每种情况下我都会得到……只是不是我所需要的……
答案 0 :(得分:0)
这是您想要的吗?
ar = big_df[["X", "Y", "Z"]]