私のパンダのデータフレームがある:パンダピボットテーブル
df = pd.DataFrame({"PAR NAME":['abc','def','def','def','abc'], "value":[1,2,3,4,5],"DESTCD":['E','N','E','E','S']})
私はPAR NAMEのためのDFを旋回し、その値の%の年齢はDESTCDが「E」であるところから来ているかを調べる必要があります。このような何か(明らかdidntの仕事!)
df.pivot_table(index="PAR NAME",values=["value"],aggfunc={'value':lambda x: (x.sum() if x["DESTCD"]=="E")*100.0/x.sum()})
私は現在、ピボットの「価値」と一緒にそれを合計して、分割した後、条件付きの列を追加して、これをやっているが、私のデータベースが巨大である(1ギガバイトの+)より簡単な方法があるはずです。
編集:期待される出力 abc 16.67(abcとEはabcのうち6が6なので) def 77.78(defとEは合計9のdefのうち7です)。あなたはPAR NAME
に基づいて複数のGROUPBY方法を使用して、操作を適用することができます代わりに、ピボットテーブルの
期待する出力を追加できますか – Dark