簡體   English   中英

比較兩列之間的值

[英]Comparing values between two columns

我有一個 dataframe df 我想檢查 Age 列中的每個值並將其與 diff 列進行比較,最后將 Yes、No 或 other 分配給 Is_dob 列。

Age  diff(DOB-today)   Is_dob
54   54                Yes
27   27                Yes
43   44                No
68   70                No
NA   NA                Other

我試過下面的代碼:

for i, j in df['Age'].iteritems():
    for k, m in df['diff'].iteritems()
       if pd.isnull(j) or pd.isnull(m):
          df['Is_dob']='other'
       elif(m==j):
          df['Is_dob']='Yes'
       else:
          df['Is_dob']='No'

但沒有得到預期 output。 任何人都可以提出解決方案嗎?

使用numpy.select與 2 個條件和默認值:

df['Is_dob'] = np.select([df['Age'].isna() | df['diff'].isna(),
                          df['Age'].eq(df['diff'])], ['Other','Yes'], default='No')
print (df)
    Age  diff Is_dob
0  54.0  54.0    Yes
1  27.0  27.0    Yes
2  43.0  44.0     No
3  68.0  70.0     No
4   NaN   NaN  Other

或減去值,然后測試:

sub = df['Age'].sub(df['diff'])
df['Is_dob'] = np.select([sub.isna(), sub.eq(0)], ['Other','Yes'], default='No')
print (df)
    Age  diff Is_dob
0  54.0  54.0    Yes
1  27.0  27.0    Yes
2  43.0  44.0     No
3  68.0  70.0     No
4   NaN   NaN  Other

暫無
暫無

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

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