计算简单的年度变化 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']
之间没有逗号
我正在努力研究如何使用年度数据计算熊猫 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']