Nun, wäre es einfacher, Ihnen eine Lösung zu geben, wenn Sie ein Beispiel Ihrer Daten zur Verfügung gestellt, da es dementsprechend sehr unterschiedlich sein kann. Ich werde versuchen, ein Fall-Szenario und eine mögliche Lösung unten zu erstellen.
Wenn wir die Beispieldaten und Kreuztabellen-:
a = np.array(['foo', 'foo', 'foo', 'foo', 'bar', 'bar',
'bar', 'bar', 'foo', 'foo', 'foo'], dtype=object)
c = np.array(['dull', 'dull', 'shiny', 'dull', 'dull', 'weird',
'shiny', 'dull', 'shiny', 'shiny', 'shiny'], dtype=object)
CT = pd.crosstab(a, c, rownames=['a'], colnames=['c'])
CT
Wir haben die folgende Ausgabe:
Das ist eine regelmäßige Datenrahmen Objekt, es ist einfach "crosstabed" oder besser noch " pivotabled "entsprechend.
Sie möchten zeigen:
- eindeutige Werte von entweder df [ 'col1'] oder df [ 'col2'] (cols/Reihen des Kreuz Ergebnis)
- durch marginale Werte (zB höhere Zählwerte df zeigt [ ‚col1‘] näher an der Spitze)
lässt mit „1“ So starten:
Es gibt verschiedene Möglichkeiten, wie Sie das tun, eine einfache Lösung sein würde zeige das gleiche Datafram das Objekt mit booleschen Werten für einzelne Fälle;
[CT == 1]
dass Format sein könnte jedoch nicht das, was Sie bei großen Datenrahmen wünschen.
könnten Sie drucken nur die positiven Fälle oder Liste/anhängen ‚em, ein einfaches Beispiel wäre:
for col in CT.columns:
for index in CT.index:
if CT.loc[index,col] == 1:
print (index,col,'singular')
Ausgang:
('bar', 'shiny', 'singular')
('bar', 'weird', 'singular')
Der zweite Punkt/Wunsch ist komplizierter. Sie möchten nach höherem Wert bestellen. Aber es könnte Abweichungen geben. Ein höherer Wert in einer Spalte, der einem Satz von Indizes zugeordnet ist, wird höchstwahrscheinlich in der Reihenfolge von der zweiten Spalte abweichen (die auch in denselben Indizes enthalten ist).
Daher können Sie wählen, um eine bestimmte Spalte zu bestellen:
CT.sort_values('column_name', ascending=False)
Oder Sie können eine Metrik definieren, durch die Sie bestellen möchten (Zeilenwert bedeuten) und Art entsprechend.
Hoffe, dass hilft!
'pandas.DataFrame.sort_values' und' pandas.DataFrame.sort_index' –
http://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples –
Sie möchten aussehen bei 'pandas.pivot_table'. Es kann oft sehr ähnliche Dinge wie "Kreuztabellen" tun. und Sie können diese sortieren. Hier ist ein [Beispiel] (http://stackoverflow.com/questions/10595327/pandas-sort-pivot-table) – MattR