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

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

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

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

Q&A

解決済

1回答

164閲覧

Pythonの条件抽出に関しまして

Ryosuke0524

総合スコア9

Python 3.x

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

0グッド

0クリップ

投稿2023/05/22 05:49

実現したいこと

相関係数0.2以上及び-0.2以下を抽出する方法を教えてください。
なお、0.2以上、-0.2以下の数値が一つでも残っている行及び列は、全ての値を残し、一つも残っていない行及び列は削除したいです。

前提

該当のソースコード

ソースコード

python

1df = pd.read_csv('data/src/sample_pandas_normal.csv') 2print(df) 3 4name A B C 50 Alice 0.1 0.3 0.05 61 Bob 0.1 -0.5 -0.02 72 Charlie 0.01 -0.1 -0.01 83 Dave 0.1 0.05 -0.05 94 Ellen 0.02 0.03 0.5 105 Frank 0.003 0.02 0.3 11

試したこと

以前以下のコードをこちらのサイトに教えていただき、行のみ抽出できました。
今回は、0.2以上及び-0.2以下を一つも含まない列も削除したいです。
idx = df.select_dtypes(include=[np.number]).abs().ge(0.2).any(axis=1)
dfx = df[idx].reset_index(drop=True)
print(dfx)

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

python

1idx = df.select_dtypes(include=[np.number]).abs().ge(0.2) 2ridx = idx.any(axis=1) 3cidx = idx[ridx].any()[~idx[ridx].any()].index 4dfx = df[ridx].drop(columns=cidx).reset_index(drop=True) 5print(dfx)
nameBC
Alice0.30.05
Bob-0.5-0.02
Ellen0.030.5
Frank0.020.3

投稿2023/05/22 06:59

melian

総合スコア19798

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問