假设我有一个特定的 Dataframe ,有四列(其中一列是日期),假设有12行。我想为每一行添加大约30个复制行,但每天都在增加,同时保持其余的静态。例如,如果这是我的 Dataframe :
Video_ID date ratio_liked accomulated_views
45 2022-08-07 0.540457 0.826594
87 2021-06-14 0.979323 0.977446
34 2018-02-09 0.128068 0.1237669
25 2010-01-07 0.507959 0.378297
23 2020-09-03 0.731555 0.818380
85 2015-02-01 0.999961 0.619517
92 2019-04-07 0.129270 0.024533
51 2007-07-03 0.441010 0.741781
37 2009-12-01 0.682101 0.375660
50 2012-11-10 0.754488 0.352293
我想要这样的东西:(散列线表示中间有行)
Video_ID date ratio_liked accomulated_views
45 2022-08-07 0.540457 0.826594
45 2022-08-08 0.540457 0.826594
45 2022-08-09 0.540457 0.826594
45 2022-08-10 0.540457 0.826594
---------------------------------------------
45 2022-09-06 0.540457 0.826594
45 2022-09-07 0.540457 0.826594
87 2021-06-14 0.979323 0.977446
87 2021-06-15 0.979323 0.977446
87 2021-06-16 0.979323 0.977446
------------------------------------------------------
87 2021-07-14 0.979323 0.977446
34 2018-02-07 0.128068 0.1237669
34 2018-02-18 0.128068 0.1237669
34 2018-03-07 0.128068 0.1237669
---------------------------------------------
50 2012-11-10 0.754488 0.352293
----------------------------------------------
50 2012-12-10 0.754488 0.352293
两个 Dataframe 之间的范围由pandas.date_range(日期,日期+日期偏移(月=1),频率=“d”)给出
我认为可以接近的是:
1.对于每一行,创建一个函数,将其复制30次,从而得到一个30行的 Dataframe
1.将列替换为data_range
1.创建一个循环或者一个压缩列表,选择每一行,在前面应用函数,然后进行concat
它最终会给你一个大约12x30(或31)行的 Dataframe 。
我试着编码这个,但这是不成功的。
1条答案
按热度按时间fbcarpbf1#
你可以使用panda.interpolate().ffill().这个命令首先在两个记录之间生成间隔日期,然后通过ffill()你向前填充这个间隔的缺失值。