Морская карта тепла с зазорами - PullRequest
0 голосов
/ 31 октября 2018

Я использую набор данных из kaggle и пытаюсь провести некоторый анализ данных.

Сначала я вычислил среднюю цену для группы по марке и типу автомобиля ( Это мой средний код ), а после этого я сделал тепловую карту из этого среднего ( Код тепловой карты ) ( Рисунок тепловой карты ). Однако следует отметить, что в наборе данных некоторые бренды не имеют всех типов транспортных средств, например, alfa_romeo не показывает тип «автобус». Это становится проблемой, потому что это отсутствие выглядит как пробел в тепловой карте.

Как мне преодолеть эту ситуацию, например, поставить нулевое значение там, где есть пробел?

1 Ответ

0 голосов
/ 31 октября 2018

Попробуйте добавить аргумент fill_value = 0 к вашему df.pivot в вашем Heat map code. Это должно заменить NULL значения на 0 и предотвратить появление пробелов на вашей тепловой карте.

РЕДАКТИРОВАТЬ: Ошибка с моим решением, поскольку pandas.DataFrame.pivot не имеет аргумента для fill_value. Гораздо лучшей альтернативой будет pandas.pivot_table, который более или менее эквивалентен pandas.pivot, но с большей гибкостью. Смотрите здесь: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.pivot_table.html

Вот как ваша строка должна быть переписана:

import pandas as pd
df2_pivot = pd.pivot_table(data = df2, 
                           index = 'brand', 
                           columns = 'vehicleType', 
                           values = 'avgPrice', 
                           fill_value = 0)

Также вы можете запустить:

df2_pivot = df2.pivot(index = 'brand', 
                      columns = 'vehicleType', 
                      values = 'avgPrice').fillna(0)
...