当我本周没有行时,如何在我的数据框中填写周条目?
How can I fill week entries in my dataframe when I don't have rows for this week?
我创建了以下数据集来解释我的问题:
rng = pd.date_range('2020-11-01', periods=30, freq='D')
df = pd.DataFrame({ 'Date': rng, 'Val': [0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1] })
df3=df.drop([3,8,9,10,11,12,13,14])
从代码中可以看出,我提取了一些数据(更具体地说是一周)。然后我想按周对我的数据进行分组并对变量求和 Val
:
aux3=df3.groupby(df3['Date'].dt.week).sum()
这就是我得到的输出。正如您在第 46 周看到的那样,它没有任何价值;因此,它不能添加任何东西。我怎样才能用值填充本周,例如至少为零?
Val
Date
44 0
45 6
47 7
48 0
49 1
您可以在范围内使用重新索引:
aux3.reindex(range(aux3.index.min(), aux3.index.max()+1), fill_value=0)
输出:
Val
week
44 0
45 6
46 0
47 7
48 0
49 1
我创建了以下数据集来解释我的问题:
rng = pd.date_range('2020-11-01', periods=30, freq='D')
df = pd.DataFrame({ 'Date': rng, 'Val': [0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1] })
df3=df.drop([3,8,9,10,11,12,13,14])
从代码中可以看出,我提取了一些数据(更具体地说是一周)。然后我想按周对我的数据进行分组并对变量求和 Val
:
aux3=df3.groupby(df3['Date'].dt.week).sum()
这就是我得到的输出。正如您在第 46 周看到的那样,它没有任何价值;因此,它不能添加任何东西。我怎样才能用值填充本周,例如至少为零?
Val
Date
44 0
45 6
47 7
48 0
49 1
您可以在范围内使用重新索引:
aux3.reindex(range(aux3.index.min(), aux3.index.max()+1), fill_value=0)
输出:
Val
week
44 0
45 6
46 0
47 7
48 0
49 1