【发布时间】:2017-03-19 10:40:26
【问题描述】:
我想以选择性的方式在 DataFrame 中填充 N/A 值。特别是,如果一列中有一系列连续的 nan,我希望它们被前面的非 nan 值填充,但前提是 nan 序列的长度低于指定的阈值。例如,如果阈值为 3,则 3 或更少的列内序列将填充前面的非 nan 值,而 4 或更多 nan 的序列将保持原样。
也就是说,如果输入的DataFrame是
2 5 4
nan nan nan
nan nan nan
5 nan nan
9 3 nan
7 9 1
我希望输出是:
2 5 4
2 5 nan
2 5 nan
5 5 nan
9 3 nan
7 9 1
fillna 函数在应用于 DataFrame 时具有方法和限制选项。但不幸的是,这些不足以完成任务。我尝试指定method='ffill' 和limit=3,但这会填充任何序列的前 3 个 nan,而不是如上所述的选择性。
我想这可以通过使用一些条件语句逐列进行编码,但我怀疑肯定有一些更 Pythonic 的东西。任何关于实现这一目标的有效方法的建议?
【问题讨论】:
标签: python python-3.x pandas nan missing-data