「DataFrame」indexごとの, 上位N個の列を抽出し, sortを行いたい
df =
INDEX 番号 平均
201907010601 4 0.411331
201907010601 16 0.472256
201907010601 15 0.758492
201907010601 10 0.704865
201907010601 11 0.722583
201907010601 7 0.502218
201907010601 5 0.422376
201907010601 9 0.142984
201907010601 13 0.166259
201907010601 1 0.063561
201907010601 3 0.170293
201907010601 8 0.105570
201907010601 14 0.186378
201907010601 12 0.058321
201907010601 6 0.103821
201907010601 2 0.241742
201905010402 2 0.470611
201905010402 8 0.783678
201905010402 1 0.298781
201905010402 15 0.302518
201905010402 7 0.710182
201905010402 4 0.175024
201905010402 11 0.402872
201905010402 5 0.463226
201905010402 13 0.373702
201905010402 9 0.043652
201905010402 6 0.329344
201905010402 3 0.331674
201905010402 12 0.203614
201905010402 10 0.094564
201905010402 16 0.200508
201905010402 14 0.093363
201907010606 1 0.794446
201907010606 6 0.801182
201907010606 5 0.849760
201907010606 4 0.804972
201907010606 15 0.240848
201907010606 16 0.273469
201907010606 10 0.327639
201907010606 2 0.409137
201907010606 9 0.183374
201907010606 12 0.485936
201907010606 3 0.258582
201907010606 8 0.786969
201907010606 13 0.323141
201907010606 7 0.170900
201907010606 14 0.166577
201907010606 11 0.029370
発生している問題・エラーメッセージ
上記のような, DataFrameからINDEXごとに「平均」でsortし, 高い上位N個の列を抽出したいのですが, やり方がわかりません.
理想は,INDEXごとに「平均」でのsort後, 上位3個を抽出することで
df =
INDEX 番号 平均
201907010601 15 0.758492
201907010601 11 0.722583
201907010601 10 0.704865
201905010402 8 0.783678
201905010402 7 0.710182
201905010402 2 0.470611
201907010606 5 0.849760
201907010606 4 0.804972
201907010606 6 0.801182
201907010604 7 0.834579
201907010604 14 0.773029
201907010604 11 0.659245
このような出力にしたいと考えています.
試したこと
INDEXごとの処理, 「平均」の高い上位N個の列を抽出ということで, groupby関数, rank関数を用いて,
python3
1df = df[df.groupby(["INDEX"])["平均"].rank(ascending=False)<=3]
のような処理を行いましたが, 下記の結果のように, 「平均」でのsortができませんでした.
素人質問で申し訳ありませんが, 御回答よろしくお願いいたします.
df =
INDEX 番号 平均
201907010601 15 0.758492
201907010601 10 0.704865
201907010601 11 0.722583
201905010402 2 0.470611
201905010402 8 0.783678
201905010402 7 0.710182
201907010606 6 0.801182
201907010606 5 0.849760
201907010606 4 0.804972
201907010604 14 0.773029
201907010604 11 0.659245
201907010604 7 0.834579
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。