试图返回值通过比较两个列从两个不同的数据集

0

的问题

我有两个赛车赛车数据集,9列:

df1:

df1 dataset

df2: df2 dataset

我想设置多个条件,其中两个数据集进行比较,并试图打印出真正的或虚假的,如果条件满足后比较。 条件是:

  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. 进站(df1)>=进站(df2)
  8. no_pitstop(df1)>=no_pitstop(df2)
  9. 状态(df1)=状态(df2).

第一,我试图这样的:

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

但我得到了一个错误的说法:

ValueError: Can only compare identically-labeled Series objects

我做它吗? 我试图寻找替代解决方案,但没有发现任何关于我想做什么? 谁能告诉我如果我选择过程是正确的方式? 感谢

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

最好的答案

0

这一错误发生,当你尝试比较两个熊猫数据帧和索引标签或列标签不完全匹配,或者它有不同的层面。

你可以截断数据帧之前,其功能如果其他发言:

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

其他语言

此页面有其他语言版本

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