1
したがって、高度なピボットの質問があります。これは、出力を与える、次のデータフレームすべての列をピボットしたくないときに、DataFrameを介して複数の列のセットをフラグ付き値のセットにピボットする方法
dfa = pandas.DataFrame([["g1","15","Annie","Bard"], ["g2","18","Lux","Annie"], ["g3","15","Olaf","Twitch"]], columns=["gameId", "duration", "Champ1", "Champ2"])
を考えてみましょう。次のスタックオーバーフローの問題、how to pivot complex dataframeのロジックを適用することにより
、私は
pandas.melt(dfa, id_vars=['gameId']) \
.set_index('gameId')['value'] \
.str.get_dummies() \
.groupby(level=0) \
.agg(np.sum)
を取得
しかし、私は期間列をピボットので、私は自分のコードを変更し、「value_vars」
pandas.melt(dfa, id_vars=['gameId'], value_vars = ['Champ1','Champ2']) \
.set_index('gameId')['value'] \
.str.get_dummies() \
.groupby(level=0) \
.agg(np.sum)
そして今、私は期間列を失うを追加する必要はありません。この列は一意ではないため索引ではありませんが、ピボットする必要はありません。私は 'id_vars'または 'set_index()'にadditのすべての組み合わせを試しましたが、動作しないようです。
思考?
ありがとうございます!次のように
おかげで、これは完璧です。私は 'gameId'、 'duration'を試しましたが、リストに登録されていなかったり、グループのレベルを持っていませんでした。 –
ようこそ。 Btw、常に '0'、' 1'出力は 'sum'ではなく' max'を必要とします。 – jezrael
それでは、duration = 15でどのようにクエリしますか?私はgameId = g1によってa.loc [: 'g1']で問い合わせることができますが、a.loc [:15]またはa.loc [: '15']は動作していないようです。 –