pandas 数据帧的标准 fillna 方法允许限制矩阵中接下来的 k 个条目。现在我想限制它的不是条目的数量,而是特定的时间段(我的索引是 DatetimeIndex)。我的想法是这些值有一种衰减,所以我想向前填充这些值而不是 NA,比方说半个小时,但不能更远。怎么解决呢?
index value_a value_b diff
2016-01-01 00:01:00 2.8 NaN NaN
2016-01-01 00:06:00 2.8 5.4 -2.6
2016-01-01 00:11:00 NaN 5.4 NaN
2016-01-01 00:16:00 NaN NaN NaN
2016-01-01 00:21:00 NaN 5.4 NaN
在那个例子中,我例如希望在未来 14 分钟内替换 NaN 值,以便在 00:21:00 列 value_a 中 NaN 保留,而 value_a 和 value_b 的其他 NaN 消失。
最佳答案
如果是上采样,您可以使用 resample
+ transform
并聚合第一个
:
#for testing 10Min
df = df.resample('10Min').transform('first')
print (df)
value_a value_b diff
index
2016-01-01 00:01:00 2.8 5.4 -2.6
2016-01-01 00:06:00 2.8 5.4 -2.6
2016-01-01 00:11:00 NaN 5.4 NaN
2016-01-01 00:16:00 NaN 5.4 NaN
2016-01-01 00:21:00 NaN 5.4 NaN
或者可能需要转换
+ 填充
:
df = df.resample('10T').transform('ffill')
print (df)
value_a value_b diff
index
2016-01-01 00:01:00 2.8 NaN NaN
2016-01-01 00:06:00 2.8 NaN NaN
2016-01-01 00:11:00 2.8 5.4 -2.6
2016-01-01 00:16:00 2.8 5.4 -2.6
2016-01-01 00:21:00 NaN 5.4 NaN
关于pandas - Python Pandas fillna 与 timedelta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43977728/