【问题标题】:Python - How to change the value of a looping dataframe based on the previous dataPython - 如何根据以前的数据更改循环数据框的值
【发布时间】:2023-02-20 19:59:00
【问题描述】:

** 我正在尝试对相当大的数据框执行值替换。

C = 有问题的数据框。它具有时间 00:00 的值,我希望相同的值在存在时重复 24 次,以便始终相同。

我尝试遍历数据帧并在值为 0.0 时将之前的数据分配给它。由于出现的值是当天的平均值。**

C = q.merge(ss, how='right',left_index=True, right_index=True)
C = C.fillna(0)
for index, row in C['H04_PEDRO_MARIN'].iteritems():
    if row == 0.0:
        C.replace({'H04_PEDRO_MARIN':{0.0:'Valor Anterior'}),inplace = True)
       
    else:
        None

C: 
29/07/11 21:00  0
29/07/11 22:00  0
29/07/11 23:00  0
30/07/11 00:00  27658,625
30/07/11 01:00  0
30/07/11 02:00  0
30/07/11 03:00  0
30/07/11 04:00  0
30/07/11 05:00  0
30/07/11 06:00  0
30/07/11 07:00  0
30/07/11 08:00  0
30/07/11 09:00  0
30/07/11 10:00  0
30/07/11 11:00  0
30/07/11 12:00  0
30/07/11 13:00  0
30/07/11 14:00  0
30/07/11 15:00  0
30/07/11 16:00  0
30/07/11 17:00  0
30/07/11 18:00  0
30/07/11 19:00  0
30/07/11 20:00  0
30/07/11 21:00  0
30/07/11 22:00  0
30/07/11 23:00  0
31/07/11 00:00  32617,125
31/07/11 01:00  0
31/07/11 02:00  0
31/07/11 03:00  0`

I would like to have a solution like this one:

C:
29/07/11 21:00  0
29/07/11 22:00  0
29/07/11 23:00  0
30/07/11 00:00  27658,625
30/07/11 01:00  27658,625
30/07/11 02:00  27658,625
30/07/11 03:00  27658,625
30/07/11 04:00  27658,625
30/07/11 05:00  27658,625
30/07/11 06:00  27658,625
30/07/11 07:00  27658,625
30/07/11 08:00  27658,625
30/07/11 09:00  27658,625
30/07/11 10:00  27658,625
30/07/11 11:00  27658,625
30/07/11 12:00  27658,625
30/07/11 13:00  27658,625
30/07/11 14:00  27658,625
30/07/11 15:00  27658,625
30/07/11 16:00  27658,625
30/07/11 17:00  27658,625
30/07/11 18:00  27658,625
30/07/11 19:00  27658,625
30/07/11 20:00  27658,625
30/07/11 21:00  27658,625
30/07/11 22:00  27658,625
30/07/11 23:00  27658,625
31/07/11 00:00  32617,125
31/07/11 01:00  32617,125
31/07/11 02:00  32617,125

...

【问题讨论】:

    标签: python pandas dataframe for-loop


    【解决方案1】:

    您可以使用:

    df['H04_PEDRO_MARIN2'] = df.replace('0', np.nan).ffill().fillna(0)
    print(df)
    
    # Output
                   H04_PEDRO_MARIN H04_PEDRO_MARIN2
    29/07/11 21:00               0                0
    29/07/11 22:00               0                0
    29/07/11 23:00               0                0
    30/07/11 00:00       27658,625        27658,625
    30/07/11 01:00               0        27658,625
    30/07/11 02:00               0        27658,625
    30/07/11 03:00               0        27658,625
    30/07/11 04:00               0        27658,625
    30/07/11 05:00               0        27658,625
    30/07/11 06:00               0        27658,625
    30/07/11 07:00               0        27658,625
    30/07/11 08:00               0        27658,625
    30/07/11 09:00               0        27658,625
    30/07/11 10:00               0        27658,625
    30/07/11 11:00               0        27658,625
    30/07/11 12:00               0        27658,625
    30/07/11 13:00               0        27658,625
    30/07/11 14:00               0        27658,625
    30/07/11 15:00               0        27658,625
    30/07/11 16:00               0        27658,625
    30/07/11 17:00               0        27658,625
    30/07/11 18:00               0        27658,625
    30/07/11 19:00               0        27658,625
    30/07/11 20:00               0        27658,625
    30/07/11 21:00               0        27658,625
    30/07/11 22:00               0        27658,625
    30/07/11 23:00               0        27658,625
    31/07/11 00:00       32617,125        32617,125
    31/07/11 01:00               0        32617,125
    31/07/11 02:00               0        32617,125
    31/07/11 03:00               0        32617,125
    

    【讨论】:

      猜你喜欢
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      • 2021-04-02
      • 1970-01-01
      • 2017-12-17
      • 2021-12-04
      相关资源
      最近更新 更多