【发布时间】:2015-03-10 09:56:52
【问题描述】:
假设我有一个带有 NaNs 的 DataFrame:
>>> import pandas as pd
>>> df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])
>>> df
0 1 2
0 1 2 3
1 4 NaN NaN
2 NaN NaN 9
我需要做的是将每个NaN 替换为其上方同一列中的第一个非NaN 值。假定第一行永远不会包含NaN。因此,对于前面的示例,结果将是
0 1 2
0 1 2 3
1 4 2 3
2 4 2 9
我可以逐列、逐个元素地遍历整个 DataFrame 并直接设置值,但有没有一种简单(最好是无循环)的方法来实现这一点?
【问题讨论】:
标签: python python-3.x pandas dataframe nan