Încercarea de a returna valori prin compararea a două coloane din două seturi de date diferite

0

Problema

Am două curse kart seturi de date cu 9 coloane:

df1:

df1 dataset

df2: df2 dataset

Am încercat să înființeze mai multe condiții în cazul în care două seturi de date sunt comparate și încercarea de a imprima Adevărate sau false în cazul în care condițiile sunt satisfăcătoare după compararea. condițiile sunt:

  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. statutul (df1) = stare (df2).

în primul rând, am încercat acest lucru:

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')

dar am primit o eroare de a spune:

ValueError: Can only compare identically-labeled Series objects

Eu o fac corect? Am încercat găsirea de soluții alternative, dar nu am gasit nici relevante pentru ceea ce am încercat să fac? Imi poate spune cineva daca procedura pe care am ales-o este calea cea dreaptă? Multumesc

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

Cel mai bun răspuns

0

Această eroare apare atunci când încercați pentru a compara doi ursi panda DataFrames și nici indicele de etichete sau coloana de etichete nu se potrivesc perfect sau are altă dimensiune.

Puteți trunchia DataFrames înainte de a în cazul în care funcția cu if-else declarație:

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

În alte limbi

Această pagină este în alte limbi

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