0

次のような「スタックされた」または「レコード形式」のデータがあります(データベースから取得):

"recid","code","value","exam_num"  
"101703034","k_rat1","17/18","1"  
"200907062","e_mas1","AC YES","6"  
"203004134","k_rat1","5/18","5"  
"303505091","k_gtrdsc","Foo","1"  
"303505091","k_rat1","4/18","2"  

そして、私はそれを次のようにピボットしたい:

recid,exam_num,k_rat1,e_mas1,k_gtrdsc
101703034,1,"17/18",,
200907062,6,,"AC YES",
203004134,5,"5/18",,
303505091,1,,,Foo
303505091,2,"4.18",,

次のように、1 つのインデックス (recid) だけで動作させることができます。

my_df = read_csv("data.csv")
pivoted = my_df.pivot(index="recid",columns="code",values="value")

これにより、これが得られます(exam_num列が欠落していることに注意してください):

recid,e_mas1,k_gtrdsc,k_rat1
101703034,,,17/18
200907062,AC YES,,
203004134,,,5/18
303505091,,Foo,4/18

ただし、複数のインデックスを指定しようとすると、または他のほとんどのものを指定しようとすると、さまざまなエラーが発生します。私はこれを読みました: http://pandas.pydata.org/pandas-docs/stable/reshaping.html、しかし、私が求めていることを正確に行う方法がわかりませんでした。

助けていただければ幸いです。

4

1 に答える 1