比较两个数据框并提取感兴趣的行

时间:2018-02-27 19:45:46

标签: python pandas

由于缺乏回应我改变了这篇文章,并且我认为我提出了广泛的问题。我已经采用原始的csv并分组/选择了最新的所有记录并将它们放入新的df以及创建另一个没有最新记录的df。

我有两个数据框,一个带有该记录的最新版本:

new_df = [{'ful_id':000c1a6c-1f1c, 'version':3, 'xs':123, 'at_grade':yes, 'date':20171003},
          {'ful_id':00dc5fec-ddb8, 'version':2, 'xs':556, 'at_grade':   , 'date':20171009}]

和另一个旧版本的记录:

old = [{'ful_id':000c1a6c-1f1c, 'version':2, 'xs':   , 'at_grade':yes, 'date':20170902},
       {'ful_id':000c1a6c-1f1c, 'version':1, 'xs':   , 'at_grade':yes, 'date':20170810},
       {'ful_id':00dc5fec-ddb8, 'version':1, 'xs':556, 'at_grade':no, 'date':20170803}]

*数据示例虽然真实的电子表格有130列和20k以上的记录

我需要遍历每个记录比较ID,然后循环遍历该id的所有版本,并查看数据是否已在旧版本中删除。我不关心其他更改,例如,如果新版本包含旧版本没有的数据。所以我在考虑进行布尔比较?输出将是任何记录ID缺失信息以及已更改的列。

import pandas as pd
import numpy as np
    #empty table for comparison
compare = []
#now im not sure how to proceed
for i,r in new_df.iterrows():
    if (current['ful_id']== old_v['ful_id']):
        turn values into boolean and compare any([])
           if value is false in new version but true in old 
               compare.append
    else :
        continue through next id group

最后一部分不是代码我知道,我只是不确定如何继续 对于我的输出,我想要一个id和列的csv与当前版本不同。因此,对于上面的示例,由于当前版本没有at_grade值,因此输出中只有一个记录和一列。

ful_id         at_grade
00dc5fec-ddb8    false

0 个答案:

没有答案