【发布时间】:2020-06-17 21:57:56
【问题描述】:
我有一个任务来比较两个具有相同列名但大小不同的数据框,我们可以将其称为先前的和当前的。我正在尝试获取数量和预订列中(以前和当前)之间的差异,并将其突出显示为黄色。两个数据框之间的共同键是“SN”列
我已经编写了以下代码
for idx, rows in df_n.iterrows():
if rows["Quantity"] == rows['Available'] + rows['Booked']:
continue
else:
rows["Quantity"] = rows["Quantity"] - rows['Available'] - rows['Booked']
df_n.loc[idx, 'Quantity'].style.applymap('background-color: yellow')
# pdb.set_trace()
if (df_o['Booked'][df_o['SN'] == rows["SN"]] != rows['Booked']).bool():
df_n.loc[idx, 'Booked'].style.apply('background-color: yellow')
我意识到我在这里遇到了一些问题,需要一些帮助
- df_n.loc[idx, 'Quantity'] 返回值而不是数据帧类型。如何从一个单元格获取数据框。我是否必须 pd.DataFrame(data=df_n.loc[idx, 'Quantity'], index=idx, columns ='Quantity')。这会创建副本还是更新参考?
- 如何比较两个数据帧的 SN,寻找更好的比较方法。我能想到的一件事是对两个数据框都使用设置索引,并在使用完它们后将它们重置回来?
我的数据框:
【问题讨论】: