Bonjour,

J'ai 2 dataframe (com1 et com2) obtenus depuis XL avec pd.read_excel("...

Je défini les écarts dans un dataframe de booléens avec gap=(com1.fillna(0) != com2.fillna(0))
Je remplace les NaN par 0 sinon le != ne donne pas le résultat que je souhaite

Je souhaite obtenir les coordonnées et les valeurs des cellules en écart
Je voudrais éviter de faire des boucles qui itèrent sur les rows et les columns en travaillant plutôt de façon vectorielle pour bénéficier de l'efficacité de pandas

Merci pour vos conseils

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
com1
Out[36]: 
   Unnamed: 0  Unnamed: 1  Unnamed: 2 Unnamed: 3 Unnamed: 4
0         NaN         NaN         NaN        NaN        NaN
1         NaN         NaN         NaN        NaN        NaN
2         NaN         NaN         NaN        NaN        NaN
3         NaN         NaN         NaN        ghg          k
4         NaN         NaN         NaN        NaN        NaN
5         NaN         NaN         NaN          h        NaN
6         NaN         NaN         NaN        NaN        NaN
7         NaN         NaN         NaN        NaN        NaN
8         NaN         NaN         NaN        112        NaN
 
com2
Out[37]: 
   Unnamed: 0  Unnamed: 1 Unnamed: 2 Unnamed: 3 Unnamed: 4
0         NaN         NaN         qq        NaN        NaN
1         NaN        45.0        NaN        NaN        NaN
2         NaN         NaN        NaN        NaN        NaN
3         NaN         NaN        NaN        ghg          k
4         NaN         NaN        NaN        NaN        NaN
5         NaN         NaN        NaN          x        NaN
6         NaN         NaN        NaN        NaN        NaN
7         NaN         NaN        NaN        NaN        NaN
8         NaN         NaN        NaN        110        NaN
 
gap
Out[38]: 
   Unnamed: 0  Unnamed: 1  Unnamed: 2  Unnamed: 3  Unnamed: 4
0       False       False        True       False       False
1       False        True       False       False       False
2       False       False       False       False       False
3       False       False       False       False       False
4       False       False       False       False       False
5       False       False       False        True       False
6       False       False       False       False       False
7       False       False       False       False       False
8       False       False       False        True       False
Le résultat souhaité:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
0, 2, NaN, 'qq'
1, 1, NaN, 45
5, 3, 'h', 'x'
8, 3, 112, 110