我希望放入一个Pandas条件,如果满足条件,它基本上会为现有条件分配一个新值。下面的psuedo代码进一步解释了我的意思:
如果邮政编码是33707,卧室数量等于2则租金=平方英尺*1200
到目前为止,我最接近匹配的是:
df.loc[(df['PostalCode'] == 33707) & (df['BedroomsTotal'] == 2), 'Rent'] = df['LivingArea'] * 2
print(df['Rent'])
在这种情况下最好使用numpy.where
:
import numpy as np
df['Rent'] = np.where(df['PostalCode'].eq(33707) & df['BedroomsTotal'].eq(2), df['LivingArea'] * 2, df.Rent)
我认为您需要在条件下工作
conditions = [((df['postalcode'] ==373370) & (df['bedroomtotal']==2)),
((df['livingarea'] ==12000)
& condition2
& condition3]
choices = [2,4, 5]. #your choices of multiplicator
import numpy as np
df['rent'] = np.select(conditions, choices*df['livingarea'], default='some value')