使用 Pandas 在面板数据中创建月度数据到季度数据的平均值
Create Average of Monthly Data to Quaterly Data in Panel Data using Pandas
我有以下数据集:
Date Country Specie Monthly Average \
Apr 2015 BR co 5.840000
Apr 2015 BR no2 7.553704
Apr 2015 BR o3 15.561667
Apr 2015 BR pm10 16.283333
Apr 2015 BR pm25 51.633333
……………………
对于10个国家,对于2015年到2021年的某些排放量(物种)。我想将它们转换为以下形式的季度平均数据(使用一个季度中相应月份的平均值)作为示例:
Date Country Specie Quarterly Average \
2015 Q1 BR co 6.840000
2015 Q1 BR no2 9.553704
2015 Q1 BR o3 17.561667
2015 Q1 BR pm10 18.283333
2015 Q1 BR pm25 55.633333
……………………
如何在 python pandas 中做到这一点?
另外还有一个问题,如果我想把Specie按列分开,取相应的值,怎么可能,这样我就可以得到下面的结构:
Date Country co Average no2 Average o3 Average ... \
2015 Q1 BR 6.840000 9.553704 17.561667
2015 Q2 BR 8.840000 10.553704 18.561667
首先从原始 Date
列创建一个 Quarter
列
df['Quarter'] = pd.to_datetime(df['Date']).dt.to_period('Q')
然后按 Country
、Specie
和 Quarter
列分组,计算每个组中 Monthly Average
列的平均值。将结果列重命名为 Quarterly Average
.
df_ = df.groupby(['Country', 'Specie', 'Quarter'], as_index=False)['Monthly Average'].mean().rename(columns={'Monthly Average': 'Quarterly Average'})
仅供参考,pandas.pivot_table() 是您要获取的结构。
我有以下数据集:
Date Country Specie Monthly Average \
Apr 2015 BR co 5.840000
Apr 2015 BR no2 7.553704
Apr 2015 BR o3 15.561667
Apr 2015 BR pm10 16.283333
Apr 2015 BR pm25 51.633333
……………………
对于10个国家,对于2015年到2021年的某些排放量(物种)。我想将它们转换为以下形式的季度平均数据(使用一个季度中相应月份的平均值)作为示例:
Date Country Specie Quarterly Average \
2015 Q1 BR co 6.840000
2015 Q1 BR no2 9.553704
2015 Q1 BR o3 17.561667
2015 Q1 BR pm10 18.283333
2015 Q1 BR pm25 55.633333
……………………
如何在 python pandas 中做到这一点?
另外还有一个问题,如果我想把Specie按列分开,取相应的值,怎么可能,这样我就可以得到下面的结构:
Date Country co Average no2 Average o3 Average ... \
2015 Q1 BR 6.840000 9.553704 17.561667
2015 Q2 BR 8.840000 10.553704 18.561667
首先从原始 Date
列创建一个 Quarter
列
df['Quarter'] = pd.to_datetime(df['Date']).dt.to_period('Q')
然后按 Country
、Specie
和 Quarter
列分组,计算每个组中 Monthly Average
列的平均值。将结果列重命名为 Quarterly Average
.
df_ = df.groupby(['Country', 'Specie', 'Quarter'], as_index=False)['Monthly Average'].mean().rename(columns={'Monthly Average': 'Quarterly Average'})
仅供参考,pandas.pivot_table() 是您要获取的结构。