如何将 fillna 应用于 pandas 数据框的最后 N 列?

How to apply fillna to last N columns of a pandas dataframe?

我有一个包含很多列的数据框。我想用 0 填充最后 x 列的 nan。我使用了以下代码,但它似乎不起作用。

df.iloc[:, -10:-1].fillna(value=0, inplace=True)

我做错了什么?当我特别按名称引用列时:

df['column_a'].fillna(value=0, inplace=True)

它有效,但我不想一次只做一栏。

这里应该有用的食谱是

df.iloc[:, -x:] = df.iloc[:, -x:].fillna(value=0)

此处可重现的示例是

import pandas as pd
df = pd.DataFrame({'col1':range(10),
                   'col2':range(1, 11), 
                   'col3':range(2, 12),
                   'col4':range(3, 13),
                   'col5':range(4, 14)})

# pepper with NaNs
df.iloc[8, 2] = None
df.iloc[8, 3] = None
df.iloc[8, 4] = None

# apply fillna change to last 2 cols
x = 2
df.iloc[:, -x:] = df.iloc[:, -x:].fillna(value=0)

print(df)