2017-03-20 5 views
0

ich einen Datenrahmen haben wie diese lokking:Seaborn Clustermap, kernel stirbt bei der Berechnung

   value_1 value_2 
test_id       
A1BG  -0.956960  -inf 
A1BG-AS1 -1.186835 -1.689504 
A1CF  -2.941882  -inf 
A2M   0.966581 1.031764 
A2M-AS1  -1.188544 -1.231258 
A2ML1   -inf -1.787149 
A2MP1   -inf  -inf 
A3GALT2  -0.885212 -0.587419 
A4GALT  0.981555 0.876730 
A4GNT   -inf  -inf 
AA06    -inf  -inf 
AAAS   1.364746 1.410399 
AACS   1.044108 0.983331 
AACSP1  -1.421534 -1.514185 

mit rund 25.000 Zeilen. Jetzt möchte ich es als Heatmap mit Clustering plotten. Ich benutzte den folgenden Befehl ein:

import numpy as np 
import pandas as pd 
import seaborn as sb 
import matplotlib.pyplot as plt 

Data=pd.read_table("C://Users/Kevin/Desktop/Test.txt", sep="\t", header=0, index_col=0) 
Data['value_1']=np.log10(Data['value_1']) 
Data['value_2']=np.log10(Data['value_2']) 
print(Data) 
Data.fillna(0) 

sb.clustermap(Data) 

Aber das einzige, was passiert ist:

Kernel died, restarting 

Was bin ich dabei?

+0

Ist der Datenrahmen, den Sie im ersten Teil Ihrer Frage anzeigen, die Ausgabe von '' print (Data) '', oder zeigt dieser Teil den Inhalt Ihrer Datei '' Test.txt''? – Schmuddi

+0

https://github.com/mwaskom/seaborn/issues/449 – mwaskom

+0

Dies ist die Ausgabe des Befehls print() –

Antwort

-1

Gemäß den Kommentaren besteht die Lösung darin, Data.fillna(0) einer neuen Variablen zuzuweisen oder sie mit inplace=True zu verwenden. In diesem speziellen Fall wäre es auch besser, np.inf zu ersetzen oder eine kleine Zahl hinzuzufügen, bevor das Protokoll der Elemente genommen wird (log(data + small_number)).

Verwandte Themen