質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1298閲覧

データフレームの重複行を条件付きで削除したい

k1ppa

総合スコア2

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2020/06/16 03:52

現状
0 1 2 3
0 339.0 106.0 0.632479 2.0
1 407.0 115.0 0.906053 3.0
2 458.0 115.0 0.910999 4.0
3 314.0 221.0 0.572901 8.0
4 149.0 252.0 0.131463 8.0
5 385.0 260.0 0.891231 9.0
6 216.0 257.0 0.106395 10.0
7 335.0 317.0 0.640136 10.0
8 367.0 67.0 0.950752 14.0
9 346.0 72.0 0.909803 16.0

所望の出力
0 1 2 3
0 339.0 106.0 0.632479 2.0
1 407.0 115.0 0.906053 3.0
2 458.0 115.0 0.910999 4.0
3 314.0 221.0 0.572901 8.0
5 385.0 260.0 0.891231 9.0
7 335.0 317.0 0.640136 10.0
8 367.0 67.0 0.950752 14.0
9 346.0 72.0 0.909803 16.0

行いたいこと
・3列目(ラベル)を参照する
・同じもの(同ラベル)があれば2列目(確率)を参照する
・値(確率)が低い方を削除する

行ったこと
pandasのduplicated()を用いました。

data_last=data_3.drop_duplicates(subset=[3])

しかし、この場合だと、データフレームの3、4行目には対応できるのですが、6、7行目には対応しません。

お願い
__行いたいこと__で記述したような手順、もしく簡易的な手順があればご教示していただければ幸いです。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

2列目(確率)を大きさ順に並び替えて、3列目を指定した重複削除をおこなってはどうでしょうか。

python3

1import pandas as pd 2import io 3txt =""" 40 1 2 3 50 339.0 106.0 0.632479 2.0 61 407.0 115.0 0.906053 3.0 72 458.0 115.0 0.910999 4.0 83 314.0 221.0 0.572901 8.0 94 149.0 252.0 0.131463 8.0 105 385.0 260.0 0.891231 9.0 116 216.0 257.0 0.106395 10.0 127 335.0 317.0 0.640136 10.0 138 367.0 67.0 0.950752 14.0 149 346.0 72.0 0.909803 16.0 15""" 16 17df = pd.read_table(io.StringIO(txt),delimiter="\s+") 18df = df.sort_values("2", ascending=False).drop_duplicates(subset="3").sort_values("3") 19print(df) 20 210 1 2 3 220 339.0 106.0 0.632479 2.0 231 407.0 115.0 0.906053 3.0 242 458.0 115.0 0.910999 4.0 253 314.0 221.0 0.572901 8.0 265 385.0 260.0 0.891231 9.0 277 335.0 317.0 0.640136 10.0 288 367.0 67.0 0.950752 14.0 299 346.0 72.0 0.909803 16.0

投稿2020/06/16 04:02

編集2020/06/16 04:12
jeanbiego

総合スコア3966

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k1ppa

2020/06/16 04:22

素早い対応誠にありがとうございます。 一度、実装してみます。
k1ppa

2020/06/16 04:36

所望の出力結果を得ることが出来ました! 誠にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問