Применить fillna к последним N столбцам информационного кадра панд - PullRequest
0 голосов
/ 17 октября 2019

У меня есть фрейм данных со многими столбцами. Я хотел бы заполнить наны с 0 для последнего х количество столбцов. Я использовал следующий код, но он не работает.

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

Что я делаю не так? когда я специально ссылаюсь на столбец по имени:

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

, он работает, но я бы не стал делать это по одному столбцу за раз.

1 Ответ

1 голос
/ 17 октября 2019

Рецепт, который должен работать здесь:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...