Maison >développement back-end >Tutoriel Python >Comment combiner des DataFrames Pandas avec des colonnes qui se chevauchent ?
Problème :
Lors de la tentative de combinaison de deux données Pandas frames utilisant la méthode DataFrame.join(), une erreur est rencontrée : "Les colonnes se chevauchent."
Data Frames :
Tentative de code :
<code class="python">restaurant_review_frame.join(other=restaurant_ids_dataframe, on='business_id', how='left')</code>
Erreur :
<code class="text">Exception: columns overlap: Index([business_id, stars, type], dtype=object)</code>
Solution :
Pour résoudre l'erreur et combiner les trames de données, utilisez le Méthode merge() au lieu de join() :
<code class="python">import pandas as pd result = pd.merge(restaurant_ids_dataframe, restaurant_review_frame, on='business_id', how='outer')</code>
Par défaut, merge() utilise une jointure externe, qui combine toutes les lignes des deux blocs de données. L'argument on spécifie la colonne utilisée pour effectuer l'opération de fusion.
Suffixes pour les colonnes qui se chevauchent :
Étant donné que les deux blocs de données ont une colonne nommée étoiles, le bloc de données fusionné contiendra deux colonnes : stars_x et stars_y. Pour personnaliser ces suffixes, utilisez l'argument suffixes :
<code class="python">result = pd.merge(..., suffixes=('_restaurant_id', '_restaurant_review'))</code>
Cela renommera les colonnes d'étoiles en stars_restaurant_id et stars_restaurant_review dans le bloc de données fusionné.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!