我有以下熊貓資料框:
| 年 | 四分之一 | 年月 | 當前值 | 未來價值 | 日期 |
|---|---|---|---|---|---|
| 2021 | 第三季度 | 2021-10 | 0.411 | 鈉 | 2021-10-01 |
| 2021 | 第四季度 | 2022-01 | -0.100 | 鈉 | 2022-01-01 |
| 2022 | 第一季度 | 2022-04 | -0.224 | 鈉 | 2022-04-01 |
| 2022 | 第一季度 | 2022-03 | 0.110 | 0.092 | 2022-03-01 |
在最后兩行中,可以看到 Year 和 Quarter 值是重復的,但 Year-Month 沒有。所以,在這種情況下,我想做的是識別這種情況。在這個年份和季度重復的示例中,我想從最后一個中獲取值,將其移動到上面的行并洗掉最后一行。所以結果將如下所示:
| 年 | 四分之一 | 年月 | 當前值 | 未來價值 | 日期 |
|---|---|---|---|---|---|
| 2021 | 第三季度 | 2021-10 | 0.411 | 鈉 | 2021-10-01 |
| 2021 | 第四季度 | 2022-01 | -0.100 | 鈉 | 2022-01-01 |
| 2022 | 第一季度 | 2022-04 | -0.224 | 0.092 | 2022-04-01 |
uj5u.com熱心網友回復:
假設行按年-月遞減排序,您可以使用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
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/493402.html
上一篇:更改日期并減去以過濾掉
