我想使用 pd.Dataframe.eq() 按索引比較兩個資料幀以獲取具有真/假值的資料幀
但是這兩個資料框有唯一的索引,所以我的意思是 df1 包含一個在 df2 中沒有表示的索引,反之亦然。
如果 df1 的列 'a' 'b' 'c' 對于每一行包含相同的 df2 值(0 或 1),我很感興趣
df1 = pd.DataFrame({'a':[1,1,1,1,1], 'b':[0,1,0,1,0], 'c':[1,0,0,1,1]}, index=['1_1', '1_2', '2_1', '2_2', '2_3'])
df2 = pd.DataFrame({'a':[0,1,1,1,1,0], 'b':[1,0,1,0,1,0], 'c':[1,1,1,1,1,0]}, index=['1_1', '1_2', '1_3', '2_2', '2_3', '2_4'])
df1.eq(df2)
產量
1_1,False,False,True
1_2,True,False,False
1_3,False,False,False
2_1,False,False,False
2_2,True,False,True
2_3,True,False,True
2_4,False,False,False
它應該看起來像
1_1,False,False,True
1_2,True,False,False
2_2,True,False,True
2_3,True,False,True
我不太確定如何處理唯一索引的問題。我正在考慮合并 dfs,但后來我在比較列時遇到了麻煩
謝謝您的幫助
uj5u.com熱心網友回復:
似乎您只想保留兩個資料幀中存在的索引的比較結果,在這種情況下,您可以通過
idx = df1.index.intersection(df2.index)
然后
df1.loc[idx].eq(df2.loc[idx])
或者
df1.eq(df2).loc[idx]
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/424778.html
