【问题标题】:resampling a pandas dataframe and filling new rows with zero重新采样熊猫数据框并用零填充新行
【发布时间】:2022-01-12 15:06:36
【问题描述】:

我有一个时间序列作为数据框。第一列是周数,第二列是该周的值。第一周 (22) 和最后一周 (48) 是时间序列的下限和上限。缺少一些周,例如,没有第 27 周和第 28 周。我想重新采样这个系列,以便没有丢失的周。在插入一周的地方,我希望相应的值为零。这是我的数据:

week    value
0   22  1
1   23  2
2   24  2
3   25  3
4   26  2
5   29  3
6   30  3
7   31  3
8   32  7
9   33  4
10  34  5
11  35  4
12  36  2
13  37  3
14  38  10
15  39  5
16  40  7
17  41  10
18  42  11
19  43  15
20  44  9
21  45  13
22  46  5
23  47  6
24  48  2

我想知道这是否可以在 Pandas 中实现,而无需从头开始创建循环。我查看了 pd.resample,但无法达到我想要的结果。

【问题讨论】:

    标签: python-3.x pandas dataframe pandas-resample


    【解决方案1】:

    我会将week 设置为索引,使用fill_value 选项重新索引:

    start, end = df['week'].agg(['min','max'])
    
    df.set_index('week').reindex(np.arange(start, end+1), fill_value=0).reset_index()
    

    输出(头部):

        week  value
    0     22      1
    1     23      2
    2     24      2
    3     25      3
    4     26      2
    5     27      0
    6     28      0
    7     29      3
    8     30      3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 2020-01-10
      • 2019-11-30
      • 2018-03-26
      • 2020-11-18
      • 2021-06-01
      • 2016-03-19
      相关资源
      最近更新 更多