我正在寻找到今年四季度的数据框前向填充。
我有以下数据框:
Quarter Name Value
2016Q4 A 2
2017Q1 B 3
2017Q2 C 1
需要输出:
Quarter Name Value
2016Q4 A 2
2017Q1 B 3
2017Q2 C 1
2017Q3 C 1
请注意,2017Q3是本季度,这是需要向前填补的内容。 任何帮助表示赞赏。 谢谢
答案 0 :(得分:2)
确保Quarter
是句点列
df.Quarter = pd.PeriodIndex(df.Quarter, freq='Q')
使用pd.period_range
构建新索引,然后reindex
idx = pd.period_range(df.Quarter.min(), pd.datetime.now(), freq='Q')
df.set_index('Quarter').reindex(idx, method='ffill').reset_index()
index Name Value
0 2016Q4 A 2
1 2017Q1 B 3
2 2017Q2 C 1
3 2017Q3 C 1
要超级安全,只需将当前最近一个季度的新索引值添加到当前
pidx = pd.PeriodIndex(df.Quarter, freq='Q')
nidx = pd.period_range(pidx.max(), pd.datetime.now(), freq='Q')
df.Quarter = pidx
df.set_index('Quarter').reindex(pidx.union(nidx), method='ffill').reset_index()
index Name Value
0 2016Q4 A 2
1 2017Q1 B 3
2 2017Q2 C 1
3 2017Q3 C 1