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

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

比較 2 Pandas Dataframes 并返回所有不同的行

比較 2 Pandas Dataframes 并返回所有不同的行

瀟湘沐 2021-11-02 16:18:26
我有 2 個(gè)具有相同架構(gòu)和不同數(shù)據(jù)的數(shù)據(jù)幀。我想比較它們并獲取任何列具有不同值的所有行?!癲f1”:id   Store         is_open1   'Walmart'      true2   'Best Buy'     false3   'Target'       true4   'Home Depot'   true“df2”:id   Store         is_open1   'Walmart'      false2   'Best Buy'     true3   'Target'       true4   'Home Depot'   false我能夠得到差異,但我沒(méi)有得到所有的列,而只是那些已經(jīng)改變的列。所以我得到以下輸出:結(jié)果_df:id   is_open  is_open1   true       false2   false      true4   true       false這是實(shí)現(xiàn)上述輸出的代碼:ne_stacked = (from_aoi_df != to_aoi_df).stack() changed = ne_stacked[ne_stacked]changed.index.names = ['id', 'col_changed']difference_locations = np.where(from_aoi_df != to_aoi_df)changed_from = from_aoi_df.values[difference_locations]changed_to = to_aoi_df.values[difference_locations]df5=pd.DataFrame({'from': changed_from, 'to': changed_to})df5但是,除了上述結(jié)果之外,我還想要添加 Store 列的所有相同列,因此我的預(yù)期輸出是:expected_result_df:        id Store         is_open_df1  is_open_df2            1   Walmart       true        false         2   Best Buy      false       true                4   Home Depot    true        false 我怎樣才能做到這一點(diǎn)?
查看完整描述

3 回答

?
紫衣仙女

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

使用熊貓merge功能

df = pd.merge(df1,df2[['id','is_open']],on='id')

http://img1.sycdn.imooc.com//6180f46e0001d05605550367.jpg

過(guò)濾掉列不相等的is_open行


df = df[df["is_open_x"]!=df["is_open_y"]]

df

http://img1.sycdn.imooc.com//6180f47900015c7b05270221.jpg

rename列作為您的期望

df.rename(columns={"is_open_x":"is_open_df1","is_open_y":"is_open_df2"})

http://img1.sycdn.imooc.com//6180f4860001209805820229.jpg

查看完整回答
反對(duì) 回復(fù) 2021-11-02
?
ITMISS

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

這個(gè)怎么樣?

df1['is_open_df2'] = df2['is_open']expected_result_df = df1[df1['is_open'] != df1[is_open_df2']]


查看完整回答
反對(duì) 回復(fù) 2021-11-02
?
三國(guó)紛爭(zhēng)

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

如果數(shù)據(jù)幀的長(zhǎng)度不同。這是你可以使用的東西。

new_df = pd.concat([df1, df2]).reset_index(drop=True)
df = new_df.drop_duplicates(subset=['col1','col2'], keep=False)

這將為您提供一個(gè)名為 df 的數(shù)據(jù)框,其中僅包含不同的記錄。

  • 其中 df1 和 df2 是您要比較的兩個(gè)數(shù)據(jù)框。

  • 子集=要為其查找重復(fù)項(xiàng)的列列表。

  • keep= false 將刪除與其原始值相同的值。

  • keep=last 將保留第二個(gè)數(shù)據(jù)幀中的記錄。

  • keep=first 將保留第一個(gè)數(shù)據(jù)幀中的記錄。

如果數(shù)據(jù)幀的長(zhǎng)度相同

df=np.where(df1==df2,'true','false')

希望這可以幫助!!如果 df1 和 df2 具有唯一值,則有效……在使用此之前,您可以刪除其中存在的重復(fù)項(xiàng)。


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

添加回答

舉報(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)