我有一个租金参考统计表,如下所示。
Sector Usage Mean_Rent Standard_deviation
SE1 R 100 10
SE1 C 120 5
SE2 R 200 50
SE2 C 150 60
我还有租赁合同表,其中包含租赁合同信息
ID Sector Usage Tenancy_year Rental
1 SE1 R 2020 120
2 SE1 C 2020 180
3 SE1 R 2020 210
4 SE2 R 2020 170
5 SE2 C 2020 190
6 SE2 R 2020 210
在上表中,我想创建一个新列Z_score。 Z分数是使用参考表以及熊猫中“部门”和“使用情况”列的组合来计算的。
预期产量
ID Sector Usage Tenancy_year Rental Z_score
1 SE1 R 2020 120 (120-100)/10
2 SE1 C 2020 180 (180-120)/5
3 SE1 R 2020 210 (210-100)/10
4 SE2 R 2020 170 (170-200)/50
5 SE2 C 2020 190 (190-150)/60
6 SE2 R 2020 210 (210-200)/50
答案 0 :(得分:1)
假设两个表分别为df1
和df2
(按给出的顺序),则可以merge
进行创建,然后创建z得分:
df = pd.merge(df1, df2, how='right', on=['Sector', 'Usage'])
df['Z_score'] = (df.Rental - df.Mean_Rent) / df.Standard_deviation