Манипулировать 2 кадрами данных на основе группы в трехмерном кадре данных - PullRequest
0 голосов
/ 02 марта 2020

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

import pandas as pd

a= {'id':[2,5,4,3,0,9],
        'type':[0,0,1,2,2,1]}
dfa = pd.DataFrame(a)
print(dfa)
  id  type
0   2     0
1   5     0
2   4     1
3   3     2
4   0     2
5   9     1

b= {'id':[10,6,8,7,11,1],
        'type':[0,1,1,1,2,2]}
dfb = pd.DataFrame(b)
print(dfb)
 id  type
0  10     0
1   6     1
2   8     1
3   7     1
4  11     2
5   1     2

Кадр данных thid имеет все идентификаторы (поскольку они уникальны) из обоих кадров данных и группу (2 идентификатора могут быть p-art группы)

g= {'id':list(range(0,12,1)),
    'groupe':[1,2,3,4,2,5,6,7,1,7,3,4]}
dfg = pd.DataFrame(g)
print(dfg)
 groupe  id
0        1   0
1        2   1
2        3   2
3        4   3
4        2   4
5        5   5
6        6   6
7        7   7
8        1   8
9        7   9
10       3  10
11       4  11

Я хочу изменить столбец type в кадре данных dfa таким образом, чтобы, если тип значения равен 2, и если идентификатор в dfa имел такой же идентификатор группы с другим идентификатором в dfb и тип равен 1, тип также будет изменен на 1

Здесь, например,

  • id = 0 в dfa и type = 2
  • id = 8 in dfb и type = 1
  • Оба 0 и 8 в dfg имеют одинаковый идентификатор группы
  • Поэтому я должен изменить тип на 1 вместо 2 в dfa, где id = 0

Ожидаемые результаты в dfa:

print(dfa) 
  id  type
0   2     0
1   5     0
2   4     1
3   3     2
4   0     1 #Instead of 2
5   9     1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...