Я не совсем новичок в программировании, но я новичок в работе с многомерными структурами данных. Прошу прощения, если это слишком упрощенно c, но я застрял на этом уже пару дней, и был бы очень признателен, если бы кто-то мог указать мне в правильном направлении ...
Я иметь:
big_df -> df, состоящий из ~ 3 000 000 строк и ~ 80 столбцов. Три из этих столбцов содержат данные координат X, Y, Z
arr -> Отдельный трехмерный массив данных X, Y, Z, содержащий ~ 4000 данных очков
Моя цель - создать новый df, содержащий строки из big_df , где big_df (X, Y, Z) == arr (X, Y, Z) * 1024 *
Я пробовал много, много разных подходов, и я знаю, что могу перебирать и сопоставлять таким образом ... но это было бы очень неэффективно, и определенно есть векторизованное решение .
Вот где я сейчас нахожусь:
result = big_df.loc[(big_df["X"] == arr[:, 0])
& (big_df["Y"] == arr[:, 1])
& (big_df["Z"] == arr[:, 2]))]
Эта конкретная версия возвращает 1 строку, когда я знаю, что есть 4075 совпадений ....
Я пробовал несколько ориентаций этого, но в каждом случае я получаю что-то ... только не то, что мне нужно ...