2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Pandasのデータフレーム。「ある値」以下の値が存在する列のみ を抽出したい

Last updated at Posted at 2021-12-21

何度も忘れ、無駄に検索を繰返してしまう処理を備忘録として記載する。
(ここで dfpandas.DataFrame

1、「ある値未満の値が存在する列のみを抽出したい」場合
  • 例えばある値を100として、100未満の値を含む列だけを抽出したい場合、
    condition = df < 100とおいて、
condition = df < 100
df.loc[:, condition.any(axis=0)]

(any()が簡便とご指摘いただき (~df[condition].isnull()).sum() != 0 を削除しました。)
(※ 返り値がデータフレームとなる条件式が .any()でなぜ処理できるのか疑問でしたが、.any()axis 引数を省略可能でデフォルトが .any(axis=0) であるとのこと。https://estuarine.jp/2017/09/extract_rows_with_nan/

  • 列中のすべての行が(表計算ソフトで言うところのすべてのセルが)、100未満の列のみを抽出したい場合は以下のように書く。
    df.loc[:, df[condition].isnull().sum() == 0]
df.loc[:, condition.all(axis=0)]
2、「ある値より大きい値が存在する列のみを抽出したい」場合

不等号の向きを変えて、condition = df > 100とします。

2
2
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?