【发布时间】:2018-03-28 16:21:22
【问题描述】:
我有一个 Pandas 数据框如下:
df =
open high low close
Timestamp
2014-01-07 13:18:00 874.67040 892.06753 874.67040 892.06753
2014-01-07 13:19:00 NaN NaN NaN NaN
2014-01-07 13:20:00 NaN NaN NaN NaN
2014-01-07 13:21:00 883.23085 883.23085 874.48165 874.48165
2014-01-07 13:22:00 NaN NaN NaN NaN
对于每个 NaN,它们应该取上一周期的收盘价。
编辑:我尝试过使用 df.fillna(method='ffill') 但它使每个 NaN 直接在其上方取值。我希望每个 NaN 在它之前只取 Close 的值。
使用填充产量:
open high low close
Timestamp
2014-01-07 13:18:00 874.67040 892.06753 874.67040 892.06753
2014-01-07 13:19:00 874.67040 892.06753 874.67040 892.06753
但我正在寻找:
open high low close
Timestamp
2014-01-07 13:18:00 874.67040 892.06753 874.67040 892.06753
2014-01-07 13:19:00 892.06753 892.06753 892.06753 892.06753
【问题讨论】:
-
还有什么问题?你有什么办法解决的?
-
编辑过的原帖
-
@Vaishali,@ASGM 这不是完全重复的......但是解决方案可能是使用循环的 2 行代码......
-
df.apply(lambda x: x.fillna(df.close.shift())).ffill()工作!谢谢,正在尝试创建一个循环,但 apply() 是一种更简单的方法。 -
@Zero 我已经重新打开它,继续发布你的答案。