将DF中的某些行除以/乘以其他有条件的DF



我得到了2个df第一个按国家和年份的购买价格

国家加拿大[/tr>中国中国
年度 购买
1999年 23加拿大
2000 24
1999年 21年
2999 22

您可以将两个表连接在一起。

merged_df = df1.merge(df2, 
on = ['year'],
how = 'left')
merged_df['ratio'] = merged_df['price']/merged_df['purchase']
merged_df.drop('price', axis = 1)

您可以执行reindexrdiv

df1['ratio'] = df1['purchase'].rdiv(df2.set_index('year')['price'].reindex(df1['year']).values)
df1
Out[316]: 
year  purchase country     ratio
0  1999        23  Canada  1.086957
1  2000        24  Canada  1.125000
2  1999        21   China  1.190476
3  2999        22   China       NaN 

最新更新