我有如下的pandas数据框架:
年份 | 季度 | 年-月 | 当前值未来值 | 日期 | 2021 | 第三季度 | 2021 - 10 | 0.411 | 南 | 2021-10-01 |
---|---|---|---|---|---|
2021 | 第四季度 | 2022 - 01年 | -0.100 | 南 | 2022-01-01 |
2022 | Q1 | 2022 - 04 | -0.224 | 南 | 2022-04-01 |
2022 | Q1 | 2022 - 03年 | 0.110 | 0.092 | 2022-03-01 |
假设行按年-月降序排序,您可以使用GroupBy.agg
和一个手工字典进行聚合(默认值为'第一个'值,'最后一个'值为'未来值'):
d = {c: 'first' for c in df}
d['Future Value'] = 'last'
out = df.groupby(['Year', 'Quarter'], as_index=False).agg(d)
输出:
Year Quarter Year-Month Current Value Future Value Date
0 2021 Q3 2021-10 0.411 NaN 2021-10-01
1 2021 Q4 2022-01 -0.100 NaN 2022-01-01
2 2022 Q1 2022-04 -0.224 0.092 2022-04-01