2016-07-11 16 views

Antwort

3

bemerken, dass der gewünschte Datenrahmen einen Index hat, deren Etiketten sind aus df['TermId'] und deren Spaltenetiketten sind aus df['Document']. Jedes Mal, wenn der Index und Spaltenbeschriftungen kommen aus Spalten von df, denken über die Verwendung von df.pivot (oder df.pivot_table wenn Aggregation erforderlich):

import pandas as pd 
df = pd.DataFrame({'Document': ['A', 'A', 'C', 'D', 'B', 'D'], 
        'Freq': ['3', '5', '1', '4', '2', '1'], 
        'TermId': ['112', '055', '003', '001', '003', '089']}) 
result = df.pivot(index='TermId', columns='Document', values='Freq').fillna(0) 
print(result) 

Ausbeuten

Document A B C D 
TermId    
001  0 0 0 4 
003  0 2 1 0 
055  5 0 0 0 
089  0 0 0 1 
112  3 0 0 0 
+0

Dank! df.pivot_table funktionierte für mich, da die TermId-Spalte in Original-DF Duplikate hatte –