Python 在数据框中,用0填充缺失年份/季度的列

Python 在数据框中,用0填充缺失年份/季度的列,python,pandas,Python,Pandas,我有一个如下所示的数据帧。某个年度或季度缺少值 我需要的是一个数据框,其中缺少的年份/季度填充为0,如下所示: pd.DataFrame({'Year_Quarter':['2017_Q1', '2017_Q2','2017_Q3', '2017_Q4', '2018_Q1', '2018_Q2', '2018_Q3','2018_Q4'], 'Value': [12, 0,14, 2, 44, 5, 0, 3

我有一个如下所示的数据帧。某个年度或季度缺少值

我需要的是一个数据框,其中缺少的年份/季度填充为0,如下所示:

pd.DataFrame({'Year_Quarter':['2017_Q1', '2017_Q2','2017_Q3', '2017_Q4',
                             '2018_Q1', '2018_Q2', '2018_Q3','2018_Q4'],
              'Value': [12, 0,14, 2, 44, 5, 0, 33]})


Year_Quarter Value
0   2017_Q1   12
1   2017_Q2   0
2   2017_Q3   14
3   2017_Q4   2
4   2018_Q1   44
5   2018_Q2   5
6   2018_Q3   0
7   2018_Q4   33

有人知道怎么做吗?非常感谢

定义第二个数据帧,其中包含所需的所有“年/季”值 像这样

df2 = pd.DataFrame({'Year_Quarter':['2017_Q1', '2017_Q2','2017_Q3', '2017_Q4',
                             '2018_Q1', '2018_Q2', '2018_Q3','2018_Q4']})
然后合并两个数据帧并用零填充NaN值

df1.merge(df2, how='outer').fillna(0)

定义第二个数据帧,其中包含所需的所有“年\季”值 像这样

df2 = pd.DataFrame({'Year_Quarter':['2017_Q1', '2017_Q2','2017_Q3', '2017_Q4',
                             '2018_Q1', '2018_Q2', '2018_Q3','2018_Q4']})
然后合并两个数据帧并用零填充NaN值

df1.merge(df2, how='outer').fillna(0)
Munge df将年度和季度划分为期间

df = df.assign(
    Year_Quarter=
    df.Year_Quarter.map(lambda x: pd.Period(x.replace('_', ''), 'Q'))
).set_index('Year_Quarter')
创建一个期间范围的索引

idx = pd.period_range(df.index.min(), df.index.max(), freq='Q', name=df.index.name)
然后使用reindex

Munge df将年度和季度划分为期间

df = df.assign(
    Year_Quarter=
    df.Year_Quarter.map(lambda x: pd.Period(x.replace('_', ''), 'Q'))
).set_index('Year_Quarter')
创建一个期间范围的索引

idx = pd.period_range(df.index.min(), df.index.max(), freq='Q', name=df.index.name)
然后使用reindex


这不是很普遍。如果OP有500个缺失值怎么办?这不是很普遍。如果OP有500个缺失值怎么办?您是否知道如何获取股票收益格式的季度数据,例如:2020-06-30、2020-03-30而不是2020Q1格式?您是否知道如何获取股票收益格式的季度数据,例如:2020-06-30、2020-03-30而不是2020Q1格式?