Quand j'essaye de fusionner deux dataframes par des lignes faisant:
bigdata = data1.append(data2)
J'obtiens l'erreur suivante:
Exception: Index cannot contain duplicate values!
L'index de la première trame de données commence de 0 à 38 et le second de 0 à 48. Je n'ai pas compris que je devais modifier l'index de l'une des trames de données avant de fusionner, mais je ne sais pas comment .
Je vous remercie.
Ce sont les deux trames de données:
data1
:
meta particle ratio area type
0 2 part10 1.348 0.8365 touching
1 2 part18 1.558 0.8244 single
2 2 part2 1.893 0.894 single
3 2 part37 0.6695 1.005 single
....clip...
36 2 part23 1.051 0.8781 single
37 2 part3 80.54 0.9714 nuclei
38 2 part34 1.071 0.9337 single
data2
:
meta particle ratio area type
0 3 part10 0.4756 1.025 single
1 3 part18 0.04387 1.232 dusts
2 3 part2 1.132 0.8927 single
...clip...
46 3 part46 13.71 1.001 nuclei
47 3 part3 0.7439 0.9038 single
48 3 part34 0.4349 0.9956 single
la première colonne est l'index
La fonction append
a un argument facultatif ignore_index
que vous devez utiliser ici pour joindre les enregistrements, car l'index n'est pas significatif pour votre application.
Vous pouvez d'abord identifier la ligne dupliquée par l'index (pas la valeur) à l'aide de la méthode groupby
, puis effectuer une opération somme/moyenne sur toutes les lignes avec l'index en double.
data1 = data1.groupby(data1.index).sum()
data2 = data2.groupby(data2.index).sum()