0
感謝堆棧溢出註釋,我創建了一個使用pandas比較兩個數據幀的小函數。比較2個數據幀,只返回不同的單元格,將NaNs視爲相等
# sample data frames
a1 = pd.DataFrame([{'_id' : '71', 'datum': '2009-11-30', 'width':'wide'},
{'_id' : '71', 'datum': np.nan, 'width':'wide'},])
a2 = pd.DataFrame([{'_id' : '71', 'datum': '2009-11-30', 'width':'wide'},
{'_id' : 'A', 'datum': np.nan, 'width':'wide'},])
a3 = pd.DataFrame([{'_id' : '71', 'datum': '2009-11-30', 'width':'wide'},
{'_id' : 'A', 'datum': np.nan, 'width':'wider'},])
# compare function
def dfCompare(a,b):
if a.equals(b) == True:
print "no differences detected"
else:
df = pd.concat([a,b])
if not df.drop_duplicates(keep=False).empty:
return df.drop_duplicates(keep=False)
else:
print "no differences detected"
dfCompare(a1,a2)
如何修改的結果,例如,該 一個)或者僅將細胞顯示不同,例如
dfCompare(a1,a2)
b)或具有不同值
到 「標記」(例如高亮顯示,或格式的值粗體,...)的單元dfCompare(a1,a3)
由於任何幫助和想法!
啊,謝謝你的解釋。作爲初學者,我不知道NaN == NaN。感謝您的代碼,但它給了我錯誤「無法比較[' - X']與塊值」。關於突出顯示:這個想法是,如果總是顯示完整的行,以某種方式顯着增強不匹配的單元格。例如。着色細胞,或任何最簡單的。 – user2006697