由于缺乏回应我改变了这篇文章,并且我认为我提出了广泛的问题。我已经采用原始的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