【问题标题】:Pandas Dataframe: How to get the cell instead of is valuePandas Dataframe:如何获取单元格而不是值
【发布时间】: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,寻找更好的比较方法。我能想到的一件事是对两个数据框都使用设置索引,并在使用完它们后将它们重置回来?

我的数据框:

上一个数据框

当前数据框

【问题讨论】:

    标签: pandas dataframe


    【解决方案1】:

    df_n.loc[idx, 'Quantity'] 返回值而不是数据框类型。 如何从一个单元格获取数据框。我一定要吗 pd.DataFrame(data=df_n.loc[idx, 'Quantity'], index=idx, 列 ='数量')。这会创建副本还是更新参考?

    要从一个单元格创建 DataFrame,您可以尝试:df_n.loc[idx, ['Quantity']].to_frame().T

    如何比较两个数据帧的 SN,寻找更好的方法 比较。我能想到的一件事是对两者都使用 set index 数据框,并在使用完毕后将它们重置回来?

    您可以使用df_n.merge(df_o, on='S/N') 来合并数据框和“比较”列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      • 2016-01-06
      • 2021-03-22
      • 1970-01-01
      相关资源
      最近更新 更多