簡體   English   中英

比較來自 2 個數據框的差異列

[英]Compare differences columns from 2 dataframes

df 1
-----
id  rank    value   group
0   1       999      A
1   2        3       A
2   3       345      B
3   56       8       C
4   7       54       D
_____
df 2
_____
id rank    value    group
0   1      111       A
1   5       3        B
2   6      345       B
3  56       11       C
4   7       2        D
5   4       92       E

我得到了不同的行數

df1 = df1.set_index('id') ; df2 = df2.set_index('id')
df1=df1[df1.index.isin(df2.index)]
df2=df2[df2.index.isin(df1.index)]
diff = df1.ne(df2)
diff.sum()

但我想在等級上設定一個條件。 如果它小於 10,那么即使 2 列的值不同,我也會評估為 true。

def within_rank(a, b):
    if a < 10 and b < 10:
       return true
    return a != b

預期 output。等級 0 值 3 組 1

您還可以檢查df1df2中的排名是否>=10

diff['rank'] &= (df1['rank'].ge(10) | df1['rank'].ge(10))

diff.sum()

Output:

rank     0
value    3
group    1
dtype: int64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM