Maison  >  Article  >  développement back-end  >  Comment combiner des DataFrames Pandas avec des colonnes qui se chevauchent ?

Comment combiner des DataFrames Pandas avec des colonnes qui se chevauchent ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 03:23:02887parcourir

How to Combine Pandas DataFrames with Overlapping Columns?

Comment combiner des trames de données Pandas basées sur une colonne partagée

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 :

  • restaurant_ids_dataframe : contient des informations sur le restaurant ID, catégories, adresses, etc.
  • restaurant_review_frame : inclut les données d'avis telles que les dates, les étoiles, les identifiants d'utilisateur, etc.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn