2

csv ファイルでピボット テーブルを作成するために pandas ライブラリを使用しています。

pivot_table コードの通常の形式は、下のコードのようなものです。

 tips=read_csv('tips.csv')
`table=pd.pivot_table(tips, values='tip_pct', rows=['time', 'sex'], cols='smoker')`

以下のように、値フィールドに複数のディメンションを追加できないかと考えていました。

List=read_csv('list.csv')
table=pd.pivot_table(List, values=['Applications','Acquisitions'], rows='Sub-Product',cols='Application Date', aggfunc='sum')

上記のコードを試しましたが、フォーマットが間違っていたので、別の方法で取得できることを望んでいましたか?

最終的にはこれを手に入れたい

http://i.stack.imgur.com/cifML.png

私が今手に入れることができるのは

http://i.stack.imgur.com/4mbzK.png

これは、ピボット テーブルに変換しようとしている元の list.csv ファイルの一部です。

Application Date    Sub-Product Applications    Acquisitions
11/1/12                   GP              1    1
11/1/12                   GP              1    1
11/2/12                   GP              1    1
11/2/12                   GP              1    1
11/3/12                   GP              1    1
11/3/12                   GPF             1    1
11/4/12                   GPF             1    1
11/4/12                   GPF             2    2
11/5/12                   GPF             1    1
11/5/12                   GPF             1    1
11/6/12                   GPF             1    1





   This is what im trying to achieve for my pivot table. 

     1. Cols : Application Date
     2. Row labels: Sub-Product
     3. Values: Application, Acquisitions

            Row Labels        11/1/2012 11/2/2012   11/3/2012
            **GP**          
            Applications    190     207            65
            Acquisitions    164     168            54
            **GPF**         
            Applications    1391      1430           1269
            Acquisitions    1124      1142           992
            **Innovative Gateway**          
            Applications    2      1    
            Acquisitions    2      1

しかし、私が得ているのは

  Sub-Product   ('Applications', '1/1/13')('Applications', '1/10/13')
    GP                                48    134 
    GPF                              600    1099    
    Innovative Gateway               1    2

これは私のコードです:

> list=pd.read_csv("List.csv") 
> df=DataFrame(list)
> table=pd.pivot_table(df,values=['Applications','Acquisitions'], rows='Sub-Product',cols='Application Date',aggfunc=np.sum)
>table.to_csv('file.csv')

したがって、現在の問題は、値フィールドに複数の値を持つことができず、日付がごちゃごちゃしているように見えることです。助けてください!

ありがとう


日付の問題は次の方法で解決できます

xl2["Application Date"] = pd.to_datetime(xl2["Application Date"], format="%m/%d/%y")

現在、私の唯一の問題は、値フィールドが複数の値を取ることができないという事実と、スタックまたはリシェイプ関数の使用方法について誰かが考えているかどうか疑問に思っていることです。

4

1 に答える 1