Попытка создать тепловую карту Seaborn из Pandas Dataframe - PullRequest
0 голосов
/ 24 апреля 2018

Это первый раз, когда ты пытаешься это сделать. На самом деле у меня есть список списков, которые я генерирую в программе, но так как я впервые пробую это сделать, я использую фиктивный словарь только для тестирования.

Я следую за этим: python Создание тепловой карты из DataFrame

но у меня не получается:

Traceback (most recent call last):
  File "C:/Users/Mark/PycharmProjects/main/main.py", line 20, in <module>
    sns.heatmap(df, cmap='RdYlGn_r', linewidths=0.5, annot=True)
  File "C:\Users\Mark\AppData\Roaming\Python\Python36\site-packages\seaborn\matrix.py", line 517, in heatmap
    yticklabels, mask)
  File "C:\Users\Mark\AppData\Roaming\Python\Python36\site-packages\seaborn\matrix.py", line 168, in __init__
    cmap, center, robust)
  File "C:\Users\Mark\AppData\Roaming\Python\Python36\site-packages\seaborn\matrix.py", line 205, in _determine_cmap_params
    calc_data = plot_data.data[~np.isnan(plot_data.data)]
TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

Мой код:

import pandas as pd
import seaborn as sns


Index = ['key1', 'key2', 'key3', 'key4', 'key5']
Cols = ['A', 'B', 'C', 'D']

testdict = {
    "key1": [1, 2, 3, 4],
    "key2": [5, 6, 7, 8],
    "key3": [9, 10, 11, 12],
    "key4": [13, 14, 15, 16],
    "key5": [17, 18, 19, 20]
}

df = pd.DataFrame(testdict, index=Index, columns=Cols)
df = df.transpose()

sns.heatmap(df, cmap='RdYlGn_r', linewidths=0.5, annot=True)

1 Ответ

0 голосов
/ 24 апреля 2018

Вам нужно переключить метки столбца и индекса

Cols = ['key1', 'key2', 'key3', 'key4', 'key5']
Index = ['A', 'B', 'C', 'D']
...