熊猫填充列值以使其具有与其他列相似的值

时间:2020-09-09 08:57:56

标签: python pandas fill

我有一个日期列,其中包含每分钟的时间序列数据。我想将所有其他列更新为每分钟都有数据,因此Date2和Date3列应具有与Date列相同的值。我还希望将Value1(链接到Date 2列)和Value2(链接到Date3列)列填充值,以便每一行都有值。填充应始终替换可见的最新值。

例如columnn Date2行2019-01-30 10:05,对应列Value1,同一行应具有值3,该值不是邮票10:04的最后更新值。

最后,对于Date列,应删除所有早于Date2和Date3列的日期。这是行2019-01-30 10:03。

    Date              Date2              Value1  Date3             Value2
   2019-01-30 10:09   2019-01-30 10:08    1      2019-01-30 10:07   5
   2019-01-30 10:08   2019-01-30 10:07    2      2019-01-30 10:04   9   
   2019-01-30 10:07   2019-01-30 10:06    4 
   2019-01-30 10:06   2019-01-30 10:04    3
   2019-01-30 10:05   
   2019-01-30 10:04
   2019-01-30 10:03

结果应为:

    Date              Date2              Value1  Date3             Value2
   2019-01-30 10:09   2019-01-30 10:09    1      2019-01-30 10:09   5
   2019-01-30 10:08   2019-01-30 10:08    1      2019-01-30 10:08   5
   2019-01-30 10:07   2019-01-30 10:07    2      2019-01-30 10:07   5
   2019-01-30 10:06   2019-01-30 10:06    4      2019-01-30 10:06   9
   2019-01-30 10:05   2019-01-30 10:05    3      2019-01-30 10:05   9
   2019-01-30 10:04   2019-01-30 10:04    3      2019-01-30 10:04   9

1 个答案:

答案 0 :(得分:1)

似乎您希望在日期的所有列中都具有相同的日期值,对吗?如果是,则只需将Date复制到Date2和Date3。当您使用Pandas读取列时,缺少的值将读取为' NAN ',您可以将其替换为 DataFrame.fillna

如果您已经阅读了列并希望将其填充,那么天真的方法是将列用作NumPy数组:

  • $ Date1 =日期
  • $ Latest_value = value1 [-1]
  • $ Updated_values = list(value1)+ list(np.ones(len(Date1)-len(value1))