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

Linda Hamilton
Libérer: 2024-10-25 03:23:02
original
960 Les gens l'ont consulté

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>
Copier après la connexion

Erreur :

<code class="text">Exception: columns overlap: Index([business_id, stars, type], dtype=object)</code>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal