У меня есть два кадра данных:
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