に結果を放送し、私は、フォームのパンダのデータフレームを持っている:パンダマルチカラム上GROUPBYと、元のデータフレーム
bowler inning wickets Total_wickets matches balls
0 SL Malinga 1 69 143 44 4078
1 SL Malinga 2 74 143 54 4735
2 A Mishra 1 48 124 50 3908
3 A Mishra 2 76 124 62 4930
4 DJ Bravo 1 61 122 48 3887
私は「山高」と「イニング」に、このDFをGROUPBYし、実行したいと思います'wickets'と 'balls'列の計算を行い、新しい列と同じdfにブロードキャストします。 私が試みた方法の一つは、のような変換を使用することでした:これはKeyError例外例外になり
df_bowler['strike rate'] = df_bowler.groupby(['bowler','inning']).transform(lambda x : x['balls']/x['wickets'])
:
KeyError: ('balls', 'occurred at index wickets')
私は私のようなマージが続く適用使って、必要なものを達成:
df_strRate = df_bowler.groupby(['bowler','inning']).apply(lambda x:x['balls']/x['wickets']).reset_index(level=2,drop=True).reset_index(name='strike rate')
df_bowler = df_bowler.merge(df_strRate,on=['bowler','inning'])
しかし、これはやっかいなようです。この場合、変換が失敗する理由を知りたい。すべてのポインタ?
ありがとうございました。
私はあなたが間違っていると思うあなたの変換[ 'GroupBy.transform'](HTTPではありません。 podata.org/pandas-docs/stable/generated/pandas.core.groupby.GroupBy.transform.html)、['DataFrame.transform'](http://pandas.pydata.org/pandas-docs/stable/ generated/pandas.DataFrame.transform.html)、 'sum'を集計してから別のデータフレームを出力するためです。 – jezrael
なぜ私の最初の変換に失敗したのか、ありがとう。しかし、あなたの変換ソリューションを動作させることができませんでした。変換時にattributeErrorが返されます。 – Tontodoin
私はそれについてのトレースバックを見なければならないでしょう。私はもう一度やり直しました。私は特別なことをする必要はなく、それはまだ機能しました。 'dfを確認してください。keys() ' –