【发布时间】:2021-02-22 14:24:02
【问题描述】:
我正在读取两个数据框,查看一列,然后用 -1 或 +1 等显示两个数据框之间的位置差异。
我尝试了以下代码,但它仅在英国航空公司和瑞安航空公司之间存在差异时显示 0 位置更改
first = pd.read_csv("C:\\Users\\airma\\PycharmProjects\\Vatsim_Stats\\Vatsim_stats\\Base.csv", encoding='unicode_escape')
df1 = pd.DataFrame(first, columns=['airlines', 'Position'])
second = pd.read_csv("C:\\Users\\airma\\PycharmProjects\\Vatsim_Stats\\Vatsim_stats\\Base2.csv", encoding='unicode_escape')
df2 = pd.DataFrame(second, columns=['airlines', 'Position'])
df1['Position Change'] = np.where(df1['airlines'] == df2['airlines'], 0, df1['Position'] - df2['Position'])
我也尝试过使用以下代码,但只是不断收到ValueError: cannot reindex from a duplicate axis
df1.set_index('airlines', drop=False) # Set index to cross reference by (icao)
df2.set_index('airlines', drop=False)
df2['Position Change'] = df1[['Position']].sub(df2['Position'], axis=0)
df2 = df2.reset_index(drop=True)
pd.set_option('display.precision', 0)
如您所见,British Airways 在 Base csv 中位于 3 位,在 Base 2 csv 中位于 4 位,但在运行代码时,它仅显示 0 并且不会在两个数据帧之间进行数学运算。
已经坚持了好几天了,非常感谢您的帮助。
【问题讨论】:
标签: python pandas dataframe comparison valueerror