Добавление недостающих строк из другой таблицы на основе 2 столбцов - PullRequest
0 голосов
/ 28 июня 2018

У меня есть подмножество данных, как показано ниже

ID  var1 var2 var3
111  A    1    1
222  A    1    1
333  A    1    1
444  A    2    1
555  A    2    1
666  A    2    1

и я хочу присоединиться к недостающей информации из приведенного ниже кадра данных. Но только те идентификаторы, которые в подмножестве содержат var1 и var2

ID  var1 var2 var3
111  A    1    1
222  A    1    1
333  A    1    1
777  A    1    0
888  A    1    0
444  A    2    1
555  A    2    1
666  A    2    1
999  A    2    0
123  B    3    1
456  B    4    0
789  C    5    1

Таким образом, вывод должен быть

ID  var1 var2 var3
111  A    1    1
222  A    1    1
333  A    1    1
777  A    1    0
888  A    1    0
444  A    2    1
555  A    2    1
666  A    2    1
999  A    2    0

Спасибо!

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Хотя Ноль уже ответил. Вы также можете использовать Pandas Library и модуль DataFrame. Это очень легко использовать и понимать; используя только индексы, вы можете сортировать, перебирать, агрегировать, конкатенировать, визуализировать и разбирать данные.

Сочетание с NumPy s ndarray еще более облегчает манипулирование. TutorialsPoint имеет отличный учебник о том, как объединить два (базовая функциональность) Python Pandas - базовая функциональность .

Пример * * тысяча двадцать-одна ''' ID var1 var2 var3 111 A 1 1 222 A 1 1 333 A 1 1 444 A 2 1 555 A 2 1 666 A 2 1 ''' import pandas as pd data = [ [111, 'A', 1, 1], [222, 'A', 1, 1], [333, 'A', 1, 1], [444, 'A', 2, 1], [555, 'A', 2, 1], [666, 'A', 2, 1] ] df = pd.DataFrame( data, columns = [ 'ID', 'var1', 'var2', 'var3' ] ) print(df) выход

    ID var1  var2  var3
0  111    A     1     1
1  222    A     1     1
2  333    A     1     1
3  444    A     2     1
4  555    A     2     1
5  666    A     2     1
0 голосов
/ 28 июня 2018

Использование merge

In [164]: df2.merge(df1[['var1', 'var2']].drop_duplicates())
Out[164]:
    ID var1  var2  var3
0  111    A     1     1
1  222    A     1     1
2  333    A     1     1
3  777    A     1     0
4  888    A     1     0
5  444    A     2     1
6  555    A     2     1
7  666    A     2     1
8  999    A     2     0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...