我有一个任务来比较两个具有相同列名但大小不同的数据框,我们可以将其称为上一个和当前。我试图获取“数量”和“预订”列中的(上一个和当前)之间的差异,并将其突出显示为黄色。两个数据框之间的共同键是“ 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')
我意识到我在这里遇到一些问题,需要一些帮助
我的数据框:
答案 0 :(得分:1)
df_n.loc [idx,'Quantity']返回值,而不是数据帧类型。 如何从一个单元格获取数据帧。我一定要吗 pd.DataFrame(data = df_n.loc [idx,'Quantity'],index = idx,列 =“数量”)。这会创建副本还是会更新参考?
要从一个单元格创建一个DataFrame,可以尝试:keep_prob
如何比较两个数据帧的序列号,以寻找更好的方法 比较。我能想到的一件事是对两者都使用set index 数据框,并在使用完后将其重置回原位?
您可以使用df_n.loc[idx, ['Quantity']].to_frame().T
合并数据框和“比较”列。