私はこのデータフレームを持っている:パンダ - 最大値によってデータフレームの並べ替え行単位
私はそうのようinput_value = 0.8
への近さに応じて仕分けしてい
df
artist track pos neg neu
0 Sufjan Stevens Should Have Known Better 0.07 0.93 0.0
8 Radiohead Daydreaming 0.05 0.95 0.0
1 Sufjan Stevens To Be Alone With You 0.05 0.95 0.0
5 Radiohead Desert Island Disk 0.08 0.92 0.0
11 Elliott Smith Between the Bars 0.03 0.97 0.0
7 Aphex Twin Avril 14th 1.00 0.00 0.0
2 Jeff Buckley Hallelujah 0.39 0.61 0.0
4 Sufjan Stevens Casimir Pulaski Day 0.09 0.91 0.0
9 Sufjan Stevens The Only Thing 0.09 0.91 0.0
3 Sufjan Stevens Death with Dignity 0.03 0.97 0.0
6 Radiohead Codex 1.00 0.00 0.0
10 Radiohead You And Whose Army? 0.00 1.00 0.0
:
v = df[['pos', 'neg', 'neu']].values
df.iloc[np.lexsort(np.abs(v - input_value).T)]
ました収率:
artist track pos neg neu
4 Sufjan Stevens Casimir Pulaski Day 0.09 0.91 0.0
9 Sufjan Stevens The Only Thing 0.09 0.91 0.0
5 Radiohead Desert Island Disk 0.08 0.92 0.0
0 Sufjan Stevens Should Have Known Better 0.07 0.93 0.0
1 Sufjan Stevens To Be Alone With You 0.05 0.95 0.0
8 Radiohead Daydreaming 0.05 0.95 0.0
3 Sufjan Stevens Death with Dignity 0.03 0.97 0.0
11 Elliott Smith Between the Bars 0.03 0.97 0.0
2 Jeff Buckley Hallelujah 0.39 0.61 0.0
6 Radiohead Codex 1.00 0.00 0.0
7 Aphex Twin Avril 14th 1.00 0.00 0.0
10 Radiohead You And Whose Army? 0.00 1.00 0.0
私は、条件が満たされない場合if input_label = 'neg'
、
次いでneg
値が最高値row-wise
でなければならない、
はそれに応じて行を排除するという条件を挿入する
を希望input_label = 'neg'
を与え次のようになります。
artist track pos neg neu
4 Sufjan Stevens Casimir Pulaski Day 0.09 0.91 0.0
9 Sufjan Stevens The Only Thing 0.09 0.91 0.0
5 Radiohead Desert Island Disk 0.08 0.92 0.0
0 Sufjan Stevens Should Have Known Better 0.07 0.93 0.0
1 Sufjan Stevens To Be Alone With You 0.05 0.95 0.0
8 Radiohead Daydreaming 0.05 0.95 0.0
3 Sufjan Stevens Death with Dignity 0.03 0.97 0.0
11 Elliott Smith Between the Bars 0.03 0.97 0.0
2 Jeff Buckley Hallelujah 0.39 0.61 0.0
10 Radiohead You And Whose Army? 0.00 1.00 0.0
どうすればいいですか?
私は従うことが本当にできないんだけどきみの 質問。行インデックス6と7を削除したようです。これらの行の両方のネガティブ値が0であることがわかりますが、あなたが目指しているものとどのように関係しているかわかりません。ブーリアンマスクがあなたが探しているようなものです。 df [df ['neg'] == input_label] –
私はデータフレーム内で正しくラベル付けされたアイテムだけを保持することを目指しています。行の 'pos'値が最も高い場合、これらの項目はここに属しません。私は 'neg'トラックが必要です。私の目的は、1)違いによってデータフレームを並べ替え、2)間違ったエントリを削除することです。 –
temp = df [df ['neg'] - df ['pos']> 0]は、negがposより大きいレコードのサブセットを提供します。それはあなたが達成しようとしていることですか? – PhilC