前提・実現したいこと
以下のコードでいうと、PlayerごとにそのPlayerのSpeedの最大値を発見してその最大値が発生したDateやほかの値も一緒に抽出したいです。
最終的なイメージの例
Player Date Speed Angle Efficiency
Player1 2021/4/15 55 20 66
Player2 2021/4/17 87 15 43
Player3 2021/4/12 96 18 42
Player4 2021/4/25 92 3 74
Player5 2021/4/22 100 10 55
よろしくお願いします。
発生している問題・エラーメッセージ
該当のソースコード
python
1import pandas as pd 2import numpy as np 3pd.options.display.float_format="{:.1f}".format 4start,end = "2021/4/1","2021/4/30" 5dates = pd.date_range(start=start,end=end,freq="D") 6players = [f"Player{i}"for i in range(1,6)] 7 8N = 200 9dates = np.random.choice(dates,size=N) 10dates.sort() 11players=np.random.choice(players,size=N) 12 13df = pd.DataFrame({ 14 "Date": dates, 15 "Player": players, 16 "Speed": np.random.sample(N) * 100.0, 17 "Angle": np.random.sample(N) * 40.0 - 20.0, 18 "Efficiency": np.random.sample(N) * 100.0, 19}) 20 21dfx = df.groupby("Player").idxmax() 22print(dfx)
試したこと
Playerごとに、というのを.groupby()で行うと集計されて?しまって出力されてしまいました。
補足情報(FW/ツールのバージョンなど)
python,vscode
回答2件
あなたの回答
tips
プレビュー