Essayez de renvoyer des valeurs par la comparaison de deux colonnes à partir de deux ensembles de données différents

0

La question

J'ai deux courses de kart jeux de données avec les 9 colonnes:

df1:

df1 dataset

df2: df2 dataset

Je suis en train de mettre en place plusieurs des conditions où les deux ensembles de données sont comparées et en essayant d'imprimer True ou false si les conditions sont satisfaisantes, après comparaison des. les conditions sont les suivantes:

  1. race_start (df1) <= race_start (df2)
  2. race_end (df1) >= race_end(df2)
  3. safety_start(df1) <= safety_start (df2)
  4. safety_end (df1) >= safety_end (df2)
  5. starting_front (df1) <= starting_front (df2)
  6. starting_back (df1) <= starting_back (df2)
  7. pitstop (df1) >= pitstop (df2)
  8. no_pitstop (df1) >= no_pitstop (df2)
  9. statut (df1) = état (df2).

tout d'abord, j'ai essayé ceci:

import numpy as np
df1['race_start_final'] = np.where(df1.race_start <= df2.race_start, 'True', 'False')
df1['race_end_final'] = np.where(df1.race_end >= df2.race_end, 'True', 'False')
df1['safety_start_final'] = np.where(df1.safety_start <= df2.safety_start, 'True', 'False')
df1['safety_end_final'] = np.where(df1.safety_end >= df2.safety_end, 'True', 'False')
df1['starting_front_final'] = np.where(df1.starting_front <= df2.starting_front, 'True', 'False')
df1['starting_back_final'] = np.where(df1.starting_back <= df2.starting_back, 'True', 'False')
df1['pitstop_final'] = np.where(df1.pitstop >= df2.pitstop, 'True', 'False')
df1['pitstop_final'] = np.where(df1.pitstop >= df2.pitstop, 'True', 'False')
df1['status_final'] = np.where(df1.status == df2.status, 'True', 'False')

mais j'ai une erreur disant:

ValueError: Can only compare identically-labeled Series objects

Suis-je en train de faire? J'ai essayé de trouver des solutions de rechange, mais n'ai pas trouvé pertinent pour ce que je suis en train de faire? Quelqu'un peut me dire si la procédure que j'ai choisi est la bonne façon? Merci

dataframe dataset pandas python
2021-11-24 03:02:00
1

La meilleure réponse

0

Cette erreur se produit lorsque vous essayez de comparer les deux pandas DataFrames et l ' index des étiquettes ou des étiquettes de colonne de ne pas correspondre parfaitement ou il a une dimension différente.

Vous pouvez tronquer DataFrames avant où la fonction avec des if-else:

df1 = pd.DataFrame([
    [10.5, 8.5],
    [8.5, 8.5]],
    columns=['race_start','race_end'])
df2 = pd.DataFrame([
    [9.8, 9.8],
    [9.8, 9.8],
    [8.5, 8.5]],
    columns=['race_start','race_end'])

if len(df1) > len(df2):
    df1=df1.tail(df2.shape[0]).reset_index()
else:
    df2=df2.tail(df1.shape[0]).reset_index()
    
df1['race_start_final'] = np.where(df1.race_start <= df2.race_start, 'True', 'False')
2021-11-25 15:32:27

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................