2016-11-11 7 views
1

私は次の形式である投票データからデータフレームを作成しようとしています:簡単な方法は、パンダで同じキーを共有する複数の行から1行に複数の列を作成する

Name,StateCode,GeoStratum,CountyCode,fips,Precinct,PrecinctReport,TotalVotes,FullName,VoteCount,ElectoralVote,Percent 
Hawaii,HI,2,1,15001,43,43,64865,Hillary Clinton,64 
Hawaii,HI,2,1,15001,43,43,64865,Donald Trump,27 
Hawaii,HI,2,1,15001,43,43,64865,Gary Johnson,4 
Hawaii,HI,2,1,15001,43,43,64865,Jill Stein,4 

私がしたいですこのような形式にこのデータを変換するには:

Name,StateCode,GeoStratum,CountyCode,fips,Precinct,PrecinctReport,TotalVotes,FullName,VoteCount,ElectoralVote,Clinton,Trump,Johnson,Stein 
    Hawaii,HI,2,1,15001,43,43,64865,64,27,4,4 

、その後、キーとしてfips列を取るパーセントの値を使用する簡単な方法がある場合には「ヒラリー・クリントン」または「ドナルド・トランプ」など。 FullNameの値は、Trump,Clintonなどの列?

もちろん、いくつかのネストされたループがこれを行います。良い方法を見つけることを願っています。

答えて

2

使用pivot_tableとインデックス、カラムを宣言し、あなたが旋回したデータで取得したい値:

df.pivot_table(index=['Name', 'StateCode', 'GeoStratum', 'CountyCode', 'fips', 'Precinct', 
     'PrecinctReport', 'TotalVotes'], columns='FullName', values='VoteCount') 

は最終的にあなたが必要なテーブルを取得するためにreset_indexを使用して、このピボットから残ることができ、無駄な列を削除。

関連する問題