pandas 如何在逐个增加特定列的同时复制 Dataframe 中的行

iezvtpos  于 2023-01-28  发布在  其他
关注(0)|答案(1)|浏览(123)

假设我有一个特定的 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 。
我试着编码这个,但这是不成功的。

fbcarpbf

fbcarpbf1#

你可以使用panda.interpolate().ffill().这个命令首先在两个记录之间生成间隔日期,然后通过ffill()你向前填充这个间隔的缺失值。

相关问题