首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在pandas数据帧中创建缺少年份和季度的行

如何在pandas数据帧中创建缺少年份和季度的行
EN

Stack Overflow用户
提问于 2020-08-31 19:33:49
回答 1查看 81关注 0票数 1

我在pandas中有一个数据帧,比如:

代码语言:javascript
复制
year quarter value
2018  3     100
2018  4     200
2019  2     300
2019  3     380
2020  1     400

在这方面,我希望2019-1,2019-4年是缺失的。我想用以前的行值创建并填充这些值。以使输出数据帧连续到本年度-季度,即2020-3:

代码语言:javascript
复制
year quarter value
2018  3     100
2018  4     200
2019  1     300
2019  2     300
2019  3     380
2019  4     380
2020  1     400
2020  2     400
2020  3     400
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-31 19:42:26

您可以通过将这两列都转换为季度期间来创建quarter PeriodIndex,然后使用DataFrame.reindex by period_range,最后分配回yearquerter列:

代码语言:javascript
复制
idx = pd.to_datetime(df['year'].astype(str) + 'q' + 
                     df['quarter'].astype(str)).dt.to_period('q')
per = pd.Timestamp('now').to_period('q')

df = (df.set_index(idx)
        .reindex(pd.period_range(idx.min(), per), method='ffill')
        .assign(year = lambda x: x.index.year,
                quarter = lambda x: x.index.quarter))
print (df)
        year  quarter  value
2018Q3  2018        3    100
2018Q4  2018        4    200
2019Q1  2019        1    200
2019Q2  2019        2    300
2019Q3  2019        3    380
2019Q4  2019        4    380
2020Q1  2020        1    400
2020Q2  2020        2    400
2020Q3  2020        3    400
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63669994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档