Pandas: как заменить значения NaN в сводной таблице нулями


Вы можете использовать аргумент fill_value в pandas, чтобы вместо этого заменить значения NaN в сводной таблице нулями.

Для этого можно использовать следующий базовый синтаксис:

pd.pivot_table(df, values='col1', index='col2', columns='col3', fill_value= 0 )

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: замена значений NaN в сводной таблице нулями

Предположим, у нас есть следующий кадр данных pandas, который содержит информацию о различных баскетболистах:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
 'position': ['G', 'G', 'F', 'C', 'F', 'F', 'F', 'F'],
 'points': [4, 4, 6, 8, 9, 5, 5, 12]})

#view DataFrame
print(df)

 team position points
0 A G 4
1 A G 4
2 A F 6
3 A C 8
4 B F 9
5 B F 5
6 B F 5
7 B F 12

Мы можем использовать следующий код для создания сводной таблицы в pandas, которая показывает среднее значение очков для каждой команды и позиции в DataFrame:

#create pivot table
df_pivot = pd.pivot_table(df, values='points', index='team', columns='position')

#view pivot table
print(df_pivot)

position C F G
team 
A 8.0 6.00 4.0
B NaN 7.75 NaN

Обратите внимание, что в сводной таблице есть два значения NaN, потому что в исходном кадре данных нет игроков с позициями C или G в команде B, поэтому обе эти позиции имеют значения NaN в сводной таблице.

Чтобы заполнить эти значения NaN нулями в сводной таблице, мы можем использовать аргумент fill_value :

#create pivot table with zeros instead of NaN values
df_pivot = pd.pivot_table(df, values='points', index='team', columns='position',
 fill_value= 0 )

#view pivot table
print(df_pivot)

position C F G
team 
A 8 6.00 4
B 0 7.75 0

Обратите внимание, что каждое из значений NaN из предыдущей сводной таблицы заполнено нулями.

Примечание.Полную документацию по функции pandas pivot_table() можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Pandas: как изменить форму DataFrame с длинного на широкий
Pandas: как изменить форму DataFrame с широкого на длинный
Pandas: как группировать и агрегировать по нескольким столбцам

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.