计算简单的年度变化 Pandas

Calculate Simple Yearly Variability Pandas

我正在努力研究如何使用年度数据计算熊猫 df (df1) 的年度变异性,并在 df2 中给出不同特征的长期年度平均值。计算很简单 (df1/df2)-1 * 100.

假设 df1 中的数据如下所示:

df1:
Site     Year     Value
Red      2019     50
Red      2020     40
Red      2021     60
White    2019     30
White    2020     70
White    2021     80
Blue     2019     10
Blue     2020     15
Blue     2021     20

df2:
Site    LT Value
Red     50
White   60
Blue    15

Answer like this...:
df1:
Site    Year    Value   Var
Red     2019    50     0.000
Red     2020    40    -0.200
Red     2021    60     0.200
White   2019    30    -0.500
White   2020    70     0.167
White   2021    80     0.333
Blue    2019    10    -0.333
Blue    2020    15     0.000
Blue    2021    20     0.333

看起来像这样的东西应该有用:

df1['Var'] = (df1['Value'] / df1['Site'].map(df2.set_index('Site'),['LT Value']) -1 ) * 100

但是,我得到一个值错误:

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

谢谢,

您的代码中有错字

df1['Var'] = (df1['Value'] / df1['Site'].map(df2.set_index('Site'),['LT Value']) -1 ) * 100

应该是

df1['Var'] = (df1['Value'] / df1['Site'].map(df2.set_index('Site')['LT Value']) -1 ) * 100

df2.set_index('Site')['LT Value']

之间没有逗号