df1:
year rate
2022 1.000
2023 1.015
2024 1.049
2025 1.084
2026 1.121
2027 1.158
2028 1.197
2029 1.237
2030 1.278
2031 1.321
2032 1.365
df2:
Name value code portion
A 10 1 2
B 12 2 0
我的要求是:
Name value code portion 2022 2023 ..... 2032
A 10 1 2 1.000*(10-2)+2 1.015*(10-2)+2 1.365*(10-2)+2
B 12 2 0 12 12 12
C 20 1 6 1.000*(20-6)+6 1.015*(20-6)+6 1.365*(20-6)+6
D 8 2 0 8 8 8
我尝试了.loc
,但失败了
我的审判是
df_multiply=df2['value'].apply(lambda x: x * df1['rate'])
2条答案
按热度按时间eblbsuwk1#
您可以使用numpy广播实现计算,并有条件地更改不需要计算的行。
gzszwxb42#
您可以执行以下操作: