Konstruieren von 3D-Pandas DataFrame

Ich Schwierigkeiten beim konstruieren eines 3D-DataFrame in Pandas. Ich möchte so etwas wie dies

A               B               C
start    end    start    end    start    end ...
7        20     42       52     90       101
11       21                     213      34
56       74                     9        45
45       12

Wo A, B etc sind die top-level-Deskriptoren start und end sind subdescriptors. Die zahlen, die Folgen, sind zu zweit und es gibt nicht die gleiche Anzahl von Paaren für A, B etc. Beachten Sie, dass A hat vier solche Paare, B hat nur 1, und C 3.

Ich bin mir nicht sicher, wie Sie Vorgehen bei der Konstruktion dieser DataFrame. Ändern diese Beispiel gar nicht, mir die entworfen, Ausgabe:

import numpy as np
import pandas as pd

A = np.array(['one', 'one', 'two', 'two', 'three', 'three'])
B = np.array(['start', 'end']*3)
C = [np.random.randint(10, 99, 6)]*6
df = pd.DataFrame(zip(A, B, C), columns=['A', 'B', 'C'])
df.set_index(['A', 'B'], inplace=True)
df

ergab:

                C
 A          B   
 one        start   [22, 19, 16, 20, 63, 54]
              end   [22, 19, 16, 20, 63, 54]
 two        start   [22, 19, 16, 20, 63, 54]
              end   [22, 19, 16, 20, 63, 54]
 three      start   [22, 19, 16, 20, 63, 54]
              end   [22, 19, 16, 20, 63, 54]

Gibt es eine Möglichkeit, brechen die Listen in C in eigene Spalten?

EDIT: Die Struktur meiner C ist wichtig. Es sieht wie folgt aus:

 C = [[7,11,56,45], [20,21,74,12], [42], [52], [90,213,9], [101, 34, 45]]

Und die gewünschte Ausgabe ist der eine an der Spitze. Es stellt die Start-und End-Punkte der untersequenzen innerhalb einer bestimmten Sequenz (A, B. C sind die verschiedenen Sequenzen). Abhängig von der Sequenz selbst gibt es eine unterschiedliche Anzahl von untersequenzen, die einer bestimmten Bedingung genügen, was ich Suche. Als Ergebnis gibt es eine unterschiedliche Anzahl von start:Ende Paare für A, B usw

InformationsquelleAutor tlnagy | 2014-06-18
Schreibe einen Kommentar