3 回答

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
使用熊貓merge
功能
df = pd.merge(df1,df2[['id','is_open']],on='id')
過(guò)濾掉列不相等的is_open行
df = df[df["is_open_x"]!=df["is_open_y"]]
df
要rename
列作為您的期望
df.rename(columns={"is_open_x":"is_open_df1","is_open_y":"is_open_df2"})

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']]

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)。
添加回答
舉報(bào)