小编Mih*_*han的帖子

在 Python 中自动比较 Winmerge

我需要一个助手在 python 中对两个表之间的比较进行编码,目前在 winmerge 中完成。

代码如下

import pandas as pd
Run Code Online (Sandbox Code Playgroud)

上周的表

df1=pd.read_csv(r"C:\Users\ri0a\OneDrive - Department of Environment, Land, Water and Planning\Python practice\pvmodules+_210326.csv")
Run Code Online (Sandbox Code Playgroud)

带有新型号和到期日期的本周表

df2=pd.read_csv(r"C:\Users\ri0a\OneDrive - Department of Environment, Land, Water and Planning\Python practice\pvmodules+_210401.csv")
Run Code Online (Sandbox Code Playgroud)

表头如下

在此处输入图片说明

第三列是 PV_module 证书:到期日期。我想设置一个类似于 excel 逻辑 '=IF (D2<DATEVALUE("19/04/2021"),"Expired","OK 的逻辑。这里的目标是删除到期日期低于的整个行特定日期/今天的日期。

接下来,导入dataframe_diff包

from dataframe_diff import dataframe_diff
Run Code Online (Sandbox Code Playgroud)

执行差异

d1_column,d2_additional=dataframe_diff(df1,df2,key=['PV Module Certificate: Licensee/Certificate Holder Account','Model Number/s'])
Run Code Online (Sandbox Code Playgroud)

使用此包 d2_additional 显示与上周相比,本周是否添加了与型号相关的新行。 在此处输入图片说明

但是,我正在尝试复制以下输出

在此处输入图片说明

涉及的任务是

  1. 如果某个模型(在本例中为一行)包含在上周的表中,但在当前周的表中缺失,我想在它旁边的新列“状态”中分配一个新字段“过期”。/或创建一个新的数据框 d2_expires,仅来自那些丢失的行。
  2. 另一个数据框,其中上周丢失但本周添加的行或产品模型仍然......作为 d2_additional。
  3. 第三个数据帧,其中相同行(相同证书 + 相同型号但不同的新到期日期)的任何更改(例如到期日期)被捕获为 d3_comparison。

请帮助我解决这个问题。

提前致谢。

现在:与

d2_expires = merged_df[merged_df._merge == 'left_only']
Run Code Online (Sandbox Code Playgroud)

d2_additional = merged_df[merged_df._merge == …
Run Code Online (Sandbox Code Playgroud)

python compare numpy dataframe differentiation

6
推荐指数
1
解决办法
164
查看次数

标签 统计

compare ×1

dataframe ×1

differentiation ×1

numpy ×1

python ×1