2016-07-11 9 views
2

用語文献マトリックスにrownames、れる列および周波数を含むDF: 入力:変換パンダは、私は次の形式でパンダのDFを有する

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

I用語ドキュメントマトリックスにこのデータフレームを変換する(好ましくは、別のパンダス)。これを達成する最も効率的な方法は何でしょうか?

例出力:所望のデータフレームは、ラベルdf['TermId']、その列のラベルdf['Document']からのものであるからである指数を有すること

Term/Document A B C D 
    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 

答えて

3

注意。インデックスと列のラベルはdfの列から来るたびに、(集約が必要な場合やdf.pivot_tabledf.pivotを使用して考える:

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) 

利回り

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

感謝!元のdfのTermId列に重複があったため、df.pivot_tableが私のために働いていました –

関連する問題