Fillna 在除最后一行之外的所有行上
Fillna on all rows excluding last
假设我有一个这样的 pandas 数据框:
df = pd.DataFrame({'A': [np.nan, 5, 2, np.nan, 3], 'B': [np.nan, 4, np.nan, 5, np.nan], 'C': [np.nan, 4, 3, 2, 1]})
A B C
0 NaN NaN NaN
1 5.0 4.0 4.0
2 2.0 NaN 3.0
3 NaN 5.0 2.0
4 3.0 NaN 1.0
我想在除最后一行之外的所有行上应用 fillna (ffill)。
这是预期的输出:
A B C
0 NaN NaN NaN
1 5.0 4.0 4.0
2 2.0 4.0 3.0
3 2.0 5.0 2.0
4 3.0 NaN 1.0
以下代码无效:
df.drop(df.tail(1).index).fillna(method="ffill",inplace=True)
有什么想法吗?谢谢
尝试 iloc
赋值 ffill
,iloc
获取最后一行之前的所有行并将其分配给 df
:
的 ffill
df.iloc[:-1] = df.iloc[:-1].ffill()
df
A B C
0 NaN NaN NaN
1 5.0 4.0 4.0
2 2.0 4.0 3.0
3 2.0 5.0 2.0
4 3.0 NaN 1.0
假设我有一个这样的 pandas 数据框:
df = pd.DataFrame({'A': [np.nan, 5, 2, np.nan, 3], 'B': [np.nan, 4, np.nan, 5, np.nan], 'C': [np.nan, 4, 3, 2, 1]})
A B C
0 NaN NaN NaN
1 5.0 4.0 4.0
2 2.0 NaN 3.0
3 NaN 5.0 2.0
4 3.0 NaN 1.0
我想在除最后一行之外的所有行上应用 fillna (ffill)。 这是预期的输出:
A B C
0 NaN NaN NaN
1 5.0 4.0 4.0
2 2.0 4.0 3.0
3 2.0 5.0 2.0
4 3.0 NaN 1.0
以下代码无效:
df.drop(df.tail(1).index).fillna(method="ffill",inplace=True)
有什么想法吗?谢谢
尝试 iloc
赋值 ffill
,iloc
获取最后一行之前的所有行并将其分配给 df
:
df.iloc[:-1] = df.iloc[:-1].ffill()
df
A B C
0 NaN NaN NaN
1 5.0 4.0 4.0
2 2.0 4.0 3.0
3 2.0 5.0 2.0
4 3.0 NaN 1.0