Python pandas数据框fillna前向填充功能无法按预期工作

时间:2015-02-15 20:36:38

标签: python pandas

pandas数据帧的fillna方法表现得很奇怪。我有一个数据框,其中列的类型为datetime.date(),索引的类型为datetime.time()。在每个单元格中我都有价值观,有时候我有“南”。

现在指数的频率为几分钟,但缺少几分钟。例如,我的数据框中不存在时间7:18。现在,当我在数据帧上运行方法fillna(method ='ffill')时,它会生成7.17并用荒谬的值填充它。

更新

在新数据框中,一旦完成填充,实际上7.17不会出现在索引中,但是如果你明确地查找它(例如使用.loc),它有一个值,它绘制在.plot中( )选项...

我还手动构建了自己的fillna函数,基本上它是逐列的,并用前一个值填充na。在调试中,当它到达7.16时它就像没有发生任何事情一样跳到7.18,因为在7.16中没有“nan”,在7.18中也没有。但结果在7.17处具有相同的奇怪值,除非您明确要求或绘制它,否则它不会出现在数据框中。

请注意,当我使用fillna(method ='bfill')时,问题不会发生......

更新2

我发现了更多的东西:如果我在完成csv的fillna后保存数据帧,然后再次加载它,那么奇怪的值就不会出现在7.17。但是如果我在将csv加载到数据帧时解析日期,那么它就是。未在数据框中明确显示,但在绘制时会显示。

任何人都知道为什么会这样?

0 个答案:

没有答案