[英]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.