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

Posted

技术标签:

【中文标题】熊猫填充列值以具有其他列的相似值【英文标题】:Pandas fill column values to have similar values of other column(s) 【发布时间】:2020-12-27 16:24:34 【问题描述】:

我有一个日期列,其中包含每一分钟的时间序列数据。我想更新我的所有其他列以每分钟也有数据,因此 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】:

您似乎希望所有日期列中的日期值都相同,对吧?如果是,那么您只需将 Date 复制到 Date2 和 Date3。当您使用 Pandas 读取列时,缺失值将被读取为“NAN”,您可以将其替换为 DataFrame.fillna

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

$ Date1 = 日期 $ latest_value = value1[-1] $ updated_values = list(value1) + list (np.ones(len(Date1)-len(value1))

【讨论】:

以上是关于熊猫填充列值以具有其他列的相似值的主要内容,如果未能解决你的问题,请参考以下文章

熊猫:用列值匹配的列表填充新列

根据熊猫中的另一个列值有条件地填充列值

如何在熊猫数据框中仅填充选定列的空值? [复制]

用其他列值填充 NaN 列,复制新行

Rails 4 / jQuery:需要在表单输入中输入值以自动填充其他输入

从多个字典填充熊猫数据框