我有两个有9列的赛车卡丁车数据集:
df1:

df2:

我试图设置多个条件,其中两个数据集进行比较,并试图打印真假,如果条件是令人满意的比较。这些条件是:
美国国家航空公司( (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我做得对吗?我试图找到替代的解决方案,但没有找到任何与我想要做的相关的解决方案?有人能告诉我我选择的程序是否正确吗?谢谢
发布于 2021-11-25 15:32:27
当您试图比较两个熊猫DataFrames,或者索引标签或列标签不完全匹配,或者它有不同的维度时,就会发生此错误。
您可以在where函数之前用if-where语句截断DataFrames:
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')https://stackoverflow.com/questions/70090265
复制相似问题