2016-06-29 17 views
1

Meine Daten sehen so etwas wie diesedie Daten in Python Transponieren

 
cust c1 p1 c2 p2 c3 p3 
1 2 3 4 5 6 7 
8 9 10 11 12 13 14 

ich diese Daten umsetzen will und zurück in folgendem Format:

 
cust c p 
1 2 3 
1 4 5 
1 6 7 
8 9 10 
8 11 12 
8 13 14 

Bitte Kann jemand vorschlagen, was zu verwenden?

Antwort

2

können Sie Funktion lreshape mit sort_values:

print (pd.lreshape(df, {'c': ['c1', 'c2', 'c3'], 'p': ['p1', 'p2', 'p3']}) 
     .sort_values('cust')) 

    cust c p 
0  1 2 3 
2  1 4 5 
4  1 6 7 
1  8 9 10 
3  8 11 12 
5  8 13 14 
+0

Danke eine Tonne für die Hilfe! Außerdem gibt es eine weitere Funktion, die das Problem löst. –

+0

Genau - aber es ist ein bisschen kompliziert - [siehe] (http://stackoverflow.com/a/39853371/2901002). – jezrael

1

Wenn Sie die Daten in einer Liste, Sie csv verwenden können.

import csv 

f = open('name.csv','wb') 
csv = csv.reader(f,delimiter=';') 

csv.writerow([list[0]]+[list[1]]+...) 
1

wenn Ihre Daten in einem Pandas-Datenrahmen. Sie können diesen Code verwenden:

import pandas as pd 
df.transpose()# df is the name of data frame. 

Oder Sie können direkt verwenden:

df.T#In this case data frame name is df.T means transpose. 

Ich denke, es wird Ihnen helfen.