2017-01-26 4 views
0

Meine Funktion schreibt Daten in eine 1x4 dataframe, wobei jede Spalte (Zelle) ein Array (1x6544) ist. Also, was ich tun muss, ist jedes der inneren Array zu transponieren (6544x1), so dass es eine schöne dataframe von 6544x4 Dimension ist.Transponieren Array innerhalb 1x4 Pandas Datenrahmen

Wie würde ich das erreichen?

Hier ist ein Beispiel für die Ausgabe des dataframe:

df = [(1,2,3,4),(a,b,c,d),(A,B,C,D,(0.25,0.655555,0.56,15.235)] 

Was Ich mag möchte dies sehen:

df1 = [1,a,A,0.25 
     2,b,B,0.655555 
     3,c,C,0.56 
     4,d,D,15.235] 

Antwort

1

Ihre Daten wie diese sein müsste:

In [1398]: data = [(1,2,3,4),('a','b','c','d'),('A','B','C','D'),(0.25,0.655555,0.56,15.235)] 

Anruf th e Datenrahmen Konstruktor und dann das .values Attribut:

In [1399]: pd.DataFrame(data).T.values 
Out[1399]: 
array([[1, 'a', 'A', 0.25], 
     [2, 'b', 'B', 0.655555], 
     [3, 'c', 'C', 0.56], 
     [4, 'd', 'D', 15.235]], dtype=object) 

Wenn Sie es als ein 1D-Array wollen, müssen Sie es neu zu gestalten:

In [1400]: pd.DataFrame(data).T.values.reshape(-1,) 
Out[1400]: 
array([1, 'a', 'A', 0.25, 
     2, 'b', 'B', 0.655555, 
     3, 'c', 'C', 0.56, 
     4, 'd', 'D', 15.235], dtype=object) 
0
>>> data = [('a','b','c','d'),('A','B','C','D'),(0.25,0.655555,0.56,15.235)] 
>>> pd.DataFrame(data) 
     0   1  2  3 
0  a   b  c  d 
1  A   B  C  D 
2 0.25 0.655555 0.56 15.235 
>>> pd.DataFrame(data).transpose() 
    0 1   2 
0 a A  0.25 
1 b B 0.655555 
2 c C  0.56 
3 d D 15.235 
Verwandte Themen