Как заменить nan на 0 в Pandas 🔄

Чтобы заменить значения NaN на 0 в pandas, вы можете использовать функцию fillna(0). Вот пример:


import pandas as pd

# Создаем DataFrame с NaN значениями
df = pd.DataFrame({'A': [1, 2, np.nan, 4, 5],
                   'B': [np.nan, 2, 3, np.nan, 5]})

# Заменяем значения NaN на 0
df.fillna(0, inplace=True)

# Выводим обновленный DataFrame
print(df)

В результате, значения NaN в DataFrame будут заменены на 0.

Детальный ответ

Как заменить NaN на 0 в библиотеке Pandas

NaN (Not a Number) - это специальное значение, которое используется в библиотеке Pandas для обозначения отсутствующих или непредставимых данных. Если у вас есть данные с пропущенными значениями NaN в DataFrame, вы можете заменить их на 0, используя несколько методов, предоставляемых библиотекой Pandas.

1. Метод fillna()

Метод fillna() позволяет заменить все значения NaN в DataFrame на указанное значение. В данном случае, мы хотим заменить NaN на 0, поэтому будем передавать 0 в качестве аргумента методу fillna(). Ниже пример кода:


import pandas as pd

# Создаем DataFrame с NaN значениями
data = {'A': [1, 2, pd.NA, 4, 5], 'B': [pd.NA, 2, 3, pd.NA, 5]}
df = pd.DataFrame(data)

# Заменяем все NaN на 0
df_filled = df.fillna(0)
print(df_filled)
  

Результат:


   A  B
0  1  0
1  2  2
2  0  3
3  4  0
4  5  5
  

2. Метод replace()

Метод replace() в Pandas позволяет заменить указанные значения в DataFrame на другие значения. В этом случае, мы хотим заменить NaN на 0. Пример кода:


import pandas as pd

# Создаем DataFrame с NaN значениями
data = {'A': [1, 2, pd.NA, 4, 5], 'B': [pd.NA, 2, 3, pd.NA, 5]}
df = pd.DataFrame(data)

# Заменяем все значения NaN на 0
df_replaced = df.replace(pd.NA, 0)
print(df_replaced)
  

Результат:


   A  B
0  1  0
1  2  2
2  0  3
3  4  0
4  5  5
  

Обратите внимание, что в данном примере мы используем pd.NA для обозначения значений NaN. Если у вас возникают проблемы с использованием pd.NA, вы также можете использовать numpy.nan для обозначения NaN значений.

3. Обход всех столбцов и замена NaN на 0

Если у вас есть большой DataFrame с несколькими столбцами и вы хотите заменить все NaN значения на 0, вы можете использовать цикл for для перебора столбцов и метод fillna() или replace() для замены NaN на 0. Пример кода:


import pandas as pd

# Создаем DataFrame с NaN значениями
data = {'A': [1, 2, pd.NA, 4, 5], 'B': [pd.NA, 2, 3, pd.NA, 5]}
df = pd.DataFrame(data)

# Заменяем все столбцы NaN на 0
for column in df.columns:
    df[column] = df[column].fillna(0)
print(df)
  

Результат:


   A  B
0  1  0
1  2  2
2  0  3
3  4  0
4  5  5
  

Обратите внимание, что в этом примере мы используем цикл for для перебора всех столбцов и метод fillna() для замены NaN на 0 в каждом столбце.

4. Обход всех строк и замена NaN на 0

Аналогично предыдущему примеру, если у вас есть большой DataFrame с несколькими строками, и вы хотите заменить все NaN значения на 0, вы можете использовать цикл for для перебора строк и метод fillna() или replace() для замены NaN на 0. Пример кода:


import pandas as pd

# Создаем DataFrame с NaN значениями
data = {'A': [1, 2, pd.NA, 4, 5], 'B': [pd.NA, 2, 3, pd.NA, 5]}
df = pd.DataFrame(data)

# Заменяем все строки NaN на 0
for index, row in df.iterrows():
    df.loc[index] = row.fillna(0)
print(df)
  

Результат:


   A  B
0  1  0
1  2  2
2  0  3
3  4  0
4  5  5
  

В этом примере мы используем цикл for для перебора всех строк с помощью метода iterrows() и метод fillna() для замены NaN на 0 в каждой строке.

Видео по теме

ПРАКТИКА Pandas | NaN, Null | Работа с пропусками в Pandas | МАШИННОЕ ОБУЧЕНИЕ

Датафреймы pandas. Пропуски данных

NaN, Null | Что делать с пропусками? | Работа с пропусками | МАШИННОЕ ОБУЧЕНИЕ

Похожие статьи:

Как заменить nan на 0 в Pandas 🔄

Как удалить мультииндекс в pandas