将fillna应用于熊猫数据框的最后N列

时间:2019-10-16 22:16:14

标签: python pandas fillna

我有一个包含许多列的数据框。我想用最后一个x列数的0来填充nan。我使用了以下代码,但似乎无法正常工作。

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

我在做什么错?当我专门用名称指一列时:

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

它可以工作,但我宁愿一次不做一列。

1 个答案:

答案 0 :(得分:1)

这里应该起作用的食谱是

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)