第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

比較兩個(gè)DataFrame并并排輸出它們的差異

比較兩個(gè)DataFrame并并排輸出它們的差異

楊__羊羊 2021-03-31 00:15:57
我試圖突出顯示兩個(gè)數(shù)據(jù)框之間到底發(fā)生了什么變化。假設(shè)我有兩個(gè)Python Pandas數(shù)據(jù)框:"StudentRoster Jan-1":id   Name   score                    isEnrolled           Comment111  Jack   2.17                     True                 He was late to class112  Nick   1.11                     False                Graduated113  Zoe    4.12                     True       "StudentRoster Jan-2":id   Name   score                    isEnrolled           Comment111  Jack   2.17                     True                 He was late to class112  Nick   1.21                     False                Graduated113  Zoe    4.12                     False                On vacation我的目標(biāo)是輸出一個(gè)HTML表,該表:標(biāo)識(shí)已更改的行(可以是int,float,boolean,string)輸出具有相同,OLD和NEW值的行(理想情況下將其輸出到HTML表中),以便使用者可以清楚地看到兩個(gè)數(shù)據(jù)框之間的變化:"StudentRoster Difference Jan-1 - Jan-2":  id   Name   score                    isEnrolled           Comment112  Nick   was 1.11| now 1.21       False                Graduated113  Zoe    4.12                     was True | now False was "" | now   "On   vacation"我想我可以逐行和逐列進(jìn)行比較,但是有沒(méi)有更簡(jiǎn)單的方法?
查看完整描述

3 回答

?
揚(yáng)帆大魚(yú)

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個(gè)贊

第一部分類(lèi)似于君士坦丁,您可以獲取其中的行為空的布爾值*:


In [21]: ne = (df1 != df2).any(1)


In [22]: ne

Out[22]:

0    False

1     True

2     True

dtype: bool

然后,我們可以查看哪些條目已更改:


In [23]: ne_stacked = (df1 != df2).stack()


In [24]: changed = ne_stacked[ne_stacked]


In [25]: changed.index.names = ['id', 'col']


In [26]: changed

Out[26]:

id  col

1   score         True

2   isEnrolled    True

    Comment       True

dtype: bool

在這里,第一個(gè)條目是索引,第二個(gè)條目是已更改的列。


In [27]: difference_locations = np.where(df1 != df2)


In [28]: changed_from = df1.values[difference_locations]


In [29]: changed_to = df2.values[difference_locations]


In [30]: pd.DataFrame({'from': changed_from, 'to': changed_to}, index=changed.index)

Out[30]:

               from           to

id col

1  score       1.11         1.21

2  isEnrolled  True        False

   Comment     None  On vacation

*注:這是非常重要的df1,并df2在這里分享相同的索引。為了克服這種歧義,您可以確保僅使用來(lái)查看共享標(biāo)簽df1.index & df2.index,但我想將其保留為練習(xí)。


查看完整回答
反對(duì) 回復(fù) 2021-04-01
  • 3 回答
  • 0 關(guān)注
  • 590 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)