0

次のcsvを取得しました。

地域、エリア、ディストリビューター、営業担当者、売上高、invoice_count                                                                                                                       
セントラル、バターワース、HIN MARKETING、TLS、500、25                                                                                                                                 
セントラル、バターワース、HIN MARKETING、TLS、500、25                                                                                                                                 
Central,Butterworth,HIN MARKETING,OSE,500,25                                                                                                                                 
Central,Butterworth,HIN MARKETING,OSE,500,25                                                                                                                                 
東、JB、雷華、NF05、500、25                                                                                                                                                  
東、JB、雷華、NF05、500、25                                                                                                                                                  
東、JB、雷華、NF06、500、25                                                                                                                                                  
東、JB、雷華、NF06、500、25

このようにグループ化すると: df.groupby(['region','area','distributor','salesrep']).sum().unstack(['distributor','salesrep']).to_string()

次の結果が得られました。

                             売上請求書_数                    
販売代理店 HIN MARKETING LEI WAH HIN MARKETING LEI WAH      
営業担当 OSE TLS NF05 NF06 OSE TLS NF05 NF06
地域面積                                                                              
中央バターワース 1000 1000 NaN NaN 50 50 NaN NaN
東 JB NaN NaN 1000 1000 NaN NaN 50 50

個別の売上高と集計のinvoice_countグループを使用する代わりに、集計を個々の列に分散させる方法はありますか?

このようなもの。

販売代理店 HIN MARKETING HIN MARKETING HIN MARKETING HIN MARKETING レイ ワウ レイ ワウ
営業担当 OSE OSE TLS TLS NF05 NF05 NF06 NF06
                             売上送り状_count 売上送り状_count 売上送り状_count 売上送り状_count
地域面積                                                                              
中央バターワース 1000 50 1000 50 NaN Nan NaN NaN
東 JB NaN Nan NaN Nan 1000 50 1000 50

列を反復処理して各集計を取得し、そこから新しいデータフレームを作成して解決しようとしました。しかし、パンダでこれを行うには、私が見逃している可能性のあるより簡単な方法が必要です。

4

1 に答える 1

0

これは、あなたの望むことですか?

In [27]: df.groupby(['region','area','distributor','salesrep']).sum().T
Out[27]: 
region               Central           East      
area             Butterworth             JB      
distributor    HIN MARKETING        LEI WAH      
salesrep                 OSE   TLS     NF05  NF06
sales                   1000  1000     1000  1000
invoice_count             50    50       50    50 
于 2013-04-26T04:25:56.250 に答える