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

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

新規登録して質問してみよう
ただいま回答率
85.49%
pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

91閲覧

行の数値の比較条件で列を抽出(queryの反対)

9230015

総合スコア5

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2020/01/21 01:32

前提・実現したいこと

pandasでエクセルファイルをDataFrameにし前処理を行っています。
ネットで調べると列の数値を比較条件(==、<、>)し行を抽出する方法はありますが
この逆が見つからず困っています。
先月からプログラミング言語を始めた為、queryのようなやり方があれば教えて貰えませんか?

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

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

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

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

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

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

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

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

magichan

2020/01/21 01:37

> この逆が見つからず この部分がよくわかりません("== " の逆は "!=" ってこと?)のでもう少し具体的に記述してください
9230015

2020/01/21 01:43

magichanさん、早速の返信ありがとうございます。 わかり難い表現ですみません。 各列データの総合計をdfに新しい行として追加しこの数値が例えば40以上の列だけ抽出したいと考えています。queryは列のデータを比較条件し行を抽出するようですがこれの逆で行のデータで列を抽出する方法があれば教えて貰えませんか?
9230015

2020/01/21 07:06

magichanさん、ありがとうございます。 教えていただいた方法で前処理が出来ました。locにこのような使い方があるとは驚きです。ネットでも載っていなかったと思います。本当にありがとうございました。
guest

回答1

0

ベストアンサー

残念ながら、query式を使って行を照会するようなメソッドは存在しないかと思います。

どうしても行いたいのであれば

Python

1df.T.query('A > 0')

の様にDataFrameを転置(.T)して行と列を入れ替えた後にquery()で操作を行う手もありますが、大抵indexの値としては数値を使用している事が多いため、query式を上手く記述でき ないのでは無いかと思います。

文字列で記述したquery式による照会する以外の方法でよいのであれば、「boolianリストを作ってフィルタリングを行う」方法が一番シンプルに記述できると思いますので、とりあえずその 方法で対応するのが良いかと思います。

下記のサンプルはDataFrameより「列毎の合計値が30以上の列を照会する」をフィルタリングで実現した例となります。

Python

1import pandas as pd 2df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9],[10,11,12]], 3 columns=['A','B','C']) 4print(df) 5# A B C 6#0 1 2 3 7#1 4 5 6 8#2 7 8 9 9#3 10 11 12 10 11# 列の合計が30以上の列を照会する 12result = df.loc[:, df.sum() >= 30] 13print(result) 14# C 15#1 3 16#2 6 17#3 9 18#4 12

投稿2020/01/21 04:38

magichan

総合スコア15898

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問