Получение объединенного фрейма данных из двух фреймов данных - PullRequest
0 голосов
/ 22 октября 2018

У меня есть два кадра данных:

Исходный кадр данных

index   A   x       y
1       1   100     100
2       1   100     400
3       1   100     700
4       1   300     200
5       2   50      200
6       2   100     200
7       2   800     400
8       2   1200    800

Целевой кадр данных

index   A   x       y
1       1   105     100
2       1   110     410
3       1   110     780
4       2   1000    90

Для каждогострока в исходном кадре данных Мне нужно найти значения, ближайшие к нему на основе значений в целевом кадре данных, сгруппированных по столбцу «A».Результирующий кадр данных должен быть таким, как показано ниже (просто выборка, в которой берется только одна строка из источника (индекс 1) и соответствующие ближайшие из пункта назначения в этой группе (A == 1))

A   x_1     y_1     x_2     y_2     nearness(approx.)
1   100     100     105     100     95
1   100     100     110     410     50
1   100     100     110     780     20

ПРИМЕЧАНИЕ. БлизостьСтолбец - это всего лишь простое представление, и в будущем он будет функцией вычисления на основе x и y.Что мне нужно, так это слияние строк между двумя данными.

Это может быть произвольно, но кто-нибудь может объяснить, как работает слияние?

Ответы [ 2 ]

0 голосов
/ 22 октября 2018
source_df.merge(dest_df, on='A')

Что он делает, так это сначала просматривает столбец source_df и 'A' и сопоставляет его со столбцом dest_df 'A' (если указано 'on') - во многом как SQL-соединение - иначе он пытается это сделатьиспользуя index, если не удается, он пытается добиться объединения, используя общие имена столбцов.Вы также можете присоединиться к различным именам столбцов, используя аргументы 'left' и 'right'.

0 голосов
/ 22 октября 2018

pd.merge (source_df, dest_df, on = 'A')

По сути, он будет проходить через каждый элемент левого кадра данных, искать его ключ в правом кадре данных и создавать запись вобъединенный график данных (он создает запись для каждого случая, когда ключ находится в правильном кадре данных, но вы можете изменить это поведение с помощью ключевого слова validate)

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html для получения дополнительной информации !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...