如何将 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)
我有一个包含很多列的数据框。我想用 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)