2017-06-08 8 views
1

pandas stack()オペレーションは予期しない結果をもたらしており、実際の小さな例では再現できません。私は、他の人がこの行動に遭遇した場合、根本的な原因について考えられる可能性のある説明があるかどうか不思議です。私がやろうとしています何を示しているまず、小さな再現性の例:パンダスタック()予期しない結果

kpiSum = dfr[(dfr.filter_any == False) & (dfr.version == 'After')].groupby('waveTwoExp')[kpi].describe() 
kpiSum = kpiSum#.stack(0) 
kpiSum 

:ここ

data = {'kpiOne': [1,1,1,1,1,2,2,2,2,2], 
'kpiTwo': [3,3,3,3,3,4,4,4,4,4], 
'kpiThree': [5,5,5,5,5,6,6,6,6,6], 
'PrePost': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B', ]} 
dfr = pd.DataFrame(data) 
dfr = dfr.groupby('PrePost').describe() 
dfr = dfr.stack(0) #this is where my problem is in practice, but works fine in this example 
dfr 

が、私はケース内の実際のデータを使用していたコードの関連する何かがここにありです出力は、私が(0)スタック(代わりにコメント記号)の前に次のようになります。[1] [スタッキング前] [1]:私は目を削除するとhttps://i.stack.imgur.com/cMTAK.png

出力は次のようになります電子のコメント記号とスタック(0): [積層した後] [2] [2]:あなたはよく見るとhttps://i.stack.imgur.com/whXZ7.png

あなたは値が間違って積み重ねてきたことがわかります。スタッキングする前のKPIの平均値は765です。積み重ねた後、KPI 'uarl'の平均値は次のレベル0の列、 'alCost'、つまり797484です。このシフトがなぜ発生するのかわかりません発生している。私の再現性の例では、重要なのは、この振る舞い、より を示さない

  1. ::これは非常に奇妙になり何

    があることであるスタックする

  2. 私のコード私は5.0
  3. をJupyterにアップグレードする前に(0)うまく働きました

私の質問が明確かどうか教えてください。他の誰でもこの動作を実行していますか?

ありがとうございます!
Kris

+0

あなたはどのバージョンのパンダを使用していますか? –

+0

私はこれを調査する手助けをしてくれてありがとう!私のパンダバージョンは:0.20.1 –

+0

このバグに関連しているのだろうかと思います。 https://stackoverflow.com/questions/43898426/multiindex-reshaping-differences-between-pandas-versions/43914593#43914593 .... [16325](https://github.com/pandas-dev/pandas/pull)/16325) –

答えて