gpt4 book ai didi

Python Pandas : Selecting previous row of matching row

转载 作者:行者123 更新时间:2023-12-01 04:55:31 25 4
gpt4 key购买 nike

假设我有一个包含多个列和一个时间序列索引的数据框。

对于其中一列,我需要将非 NaN 值之前的 NaN 替换为另一列中的值。

为了说明这一点,如下


2003-10-24 02:00:00 南
2003-10-24 03:00:00 南
2003-10-24 04:00:00 0.001
2003-10-24 05:00:00 南
2003-10-24 06:00:00 南
2003-10-24 07:00:00 0.006
2003-10-24 08:00:00 南
2003-10-24 09:00:00 南
2003-10-24 10:00:00 南
2003-10-24 11:00:00 0.004

会变成


2003-10-24 02:00:00 南
2003-10-24 03:00:00 0.002
2003-10-24 04:00:00 0.001
2003-10-24 05:00:00 南
2003-10-24 06:00:00 0.001
2003-10-24 07:00:00 0.006
2003-10-24 08:00:00 南
2003-10-24 09:00:00 南
2003-10-24 10:00:00 0.003
2003-10-24 11:00:00 0.004

出于示例目的,具有替换数据的列是


2003-10-24 02:00:00 0.001
2003-10-24 03:00:00 0.002
2003-10-24 04:00:00 0.001
2003-10-24 05:00:00 0.015
2003-10-24 06:00:00 0.001
2003-10-24 07:00:00 0.006
2003-10-24 08:00:00 0.005
2003-10-24 09:00:00 0.002
2003-10-24 10:00:00 0.003
2003-10-24 11:00:00 0.004

感谢任何帮助。

最佳答案

这不是世界上最漂亮的方法,但就是这样。首先查找所需数据替换ind的整数索引。在以下示例中,我将 df["col1"] 的值替换为 df["col2"]

import numpy as np

ind = np.where( df.col1.isnull() & df.col1.shift(-1).notnull() )

df.loc[df.index[ind], "col1"] = df.loc[df.index[ind], "col2"]

这是你想要的吗?

关于Python Pandas : Selecting previous row of matching row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27498316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com