2017-09-25 19 views
-1

私がやっていることは、ピボットテーブルを別のデータフレームに戻すためにmap関数を使うことです。 A1:A4は異なる場所を示す列です。したがって、ピボットテーブルの値は、A1またはA3などのインスタンスの数を表します。Python pandasをデータフレームにピボットバックする

私は1つのデータフレームと1つのピボットテーブルを持っています。データフレーム(DF1)は次のようになります。

    Instance Instance Instance Instance 
    SubscriberKey A1  A2  A3  A4 
     'abc'  1   0  2  0 
     'bcd'  0   1  1  2 
     'cde'  1   1  0  0 
私は何とか私のDFのA1を投入したいと思い

:A4の列にあるものに基づいて

SubscriberKey Inst A1 A2 A3 A4 
     'abc'  1  0 0  0 0 
     'bcd'  2  0 0  0 0 
     'cde'  1  0 0  0 0 
     'def'  3  0 0  0 0 
     'efg'  0  0 0  0 0 

私のピボットテーブル(PT1)はこのようになりますピボット。 dfにはピボットテーブルよりも多くの加入者キーが含まれているため、行数は同じではありません。

出力は次のようになります。

SubscriberKey A1 A2  A3 A4 
     'abc'  1 0  2 0 
     'bcd'  0 1  1 2 
     'cde'  1 1  0 0 
     'def'  0 0  0 0 
     'efg'  0 0  0 0 

すべてのヘルプは高く評価され、感謝!

+0

"あなたの声明にピボットテーブルよりも多くのサブスクライバキーが含まれているため、行数が同じではないので、質問の単語を変更したり、必要な出力を表示する必要があると思います。あなたが与えるサンプルについては真実ではありません。あなたが言ったことに基づいて、 'reindex'メソッドを使いたいかもしれません。 – JoeCondron

+0

こんにちは@JoeCondron。私が投稿を編集したことについて申し訳ありません – user6749426

答えて

1

あなたが与えるサンプルに基づいて、あなたは

pt1['Instance'].reindex_like(df1.drop('Inst', axis=1)).fillna(0).astype(int) 

あなたはおそらく、それがどのように動作するかのアイデアを与えるために、この計算の各ステップの出力を検査しなければならない行うことができます。

関連する問題