2016-07-19 14 views
0

Ich verwende pandas Bibliothek in Python, um eine multi-indizierte Daten zu generieren, d. H. Die Spalten sind multi-indiziert. Die Indizes sind category und source. Ich speichere diese Daten als .csv Datei. In der Datei ist die erste Zeile die category Werte und die zweite Zeile entspricht source Werte, dann folgen die Daten. Ich verwende diese Datei zur Visualisierung in Orange3 Software. Aber es braucht nur die erste Zeile als Spaltenname, wie mache ich es Spaltenname als die Kombination der beiden zu machen.Wie visualisiert man multiindizierte Daten in Orange?

Ich versuche nur, das Ganze als ein Histogramm zu visualisieren, wenn möglich.

  1. Da gibt es effektiv 2 (category und source) + 1 (die Zeilenbeschriftung) Variablen, würde 3D-Visualisierung best oder
  2. 1 (category und source kombinierte Variable) + 1 (die Zeile sein Label), 2d Visualisierung

category 1 1 1 1 1 2 2 source a b c d e f g label l1 1 2 3 4 5 6 7 l2 4 5 6 7 8 9 10

+0

Könnten Sie die ersten paar (4 -5) Zeilen der CSV-Datei, um die Struktur zu klären? – astaric

+0

Ich habe die Frage bearbeitet, um eine Probe @astaric einzuschließen –

Antwort

0

nach documentation, tut orange nicht s Unterstützung beim Lesen multiindexierter Daten.

Um die Daten zu visualisieren, müssen Sie sie in ein normales Tabellenformat konvertieren (eine Spalte pro Feature), bevor Sie die Daten nach csv exportieren.

Eine Möglichkeit ist die DataFrame ‚s unstack Methode zu tun:

df.unstack().to_csv("file.csv") 

Dies wird produzieren die Datei in folgendem Format:

category source label 
1   a   l1  1 
1   a   l2  4 
1   b   l1  2 
... 

Auf diese Weise können Sie Kategorie und Quelle verwenden als separate Variablen in Orange.

.

Kategorie und Quelle beizutreten, müssen Sie flatten the hierarchical index vor dem CSV exportieren:

df.columns = [' '.join(col).strip() for col in df.columns.values] 
df.to_csv(file.csv) 

Dadurch werden die Daten in folgendem Format erzeugen:

label  1 a  1 b ... 
l1   1   2 
l2   4   5 
Verwandte Themen