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

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

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

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

pandas

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

Q&A

解決済

1回答

1034閲覧

Python3のDataFrameで複数行を抽出する方法。

Savanof

総合スコア33

Python 3.x

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

pandas

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

0グッド

0クリップ

投稿2020/05/01 03:04

前提・実現したいこと

PythonのDataFrameを使用して、複数条件で抽出したいと考えています。

単一条件(Sampleの"iris" のみなど)の場合には抽出できるのですが、複数条件では抽出する事ができません。
("iris"と"spider lily"など)

このサイト(https://awesome-rainbow-colors.com/2018/09/06/post-109/)を参考にやってみたいのですが、上手くいきません。

どの様にすれば複数条件で抽出できますか?

よろしくお願いいたします。

該当のソースコード

import pandas as pd import os df = pd.DataFrame( { "Weight(g)": [0.43, 0.4, 0.45, 0.4, 0.35, 0.5, 0.35, 0.51, 0.43], "Long Axis": [0.92, 0.9, 1.04, 0.97, 0.97, 0.8, 0.97, 1.21, 0.92], "Short Axis": [0.91, 0.89, 0.97, 0.92, 0.88, 0.7, 0.88, 0.95, 0.85], "Grain Thickness": [0.73, 0.56, 0.63, 0.74, 0.51, 0.6, 0.51, 0.77, 0.83], "BeanNumber_vert": ["B2", "B2", "B2", "B6", "B6", "B6", "B39", "B39", "B39"], "Sample":["iris","iris","iris","spider lily","spider lily","spider lily","white spider lily","white spider lily","white spider lily"], } ) B1_B2 = df[(df["Sample"] == "iris") & (df["Sample"] == "white spider lily")]

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

Python3.7

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

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

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

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

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

guest

回答1

0

ベストアンサー

多分、DanSavanofさんが行いたいことは AND なのではなく OR なのかと思います。

Python

1B1_B2 = df[(df["Sample"] == "iris") & (df["Sample"] == "white spider lily")]

の場合、 『Sample列の値が"iris" 、なおかつ(AND) Sample列の値が"white spiderlily" の行』となりますので、そのような行はないので結果は空となります。

『Sample列の値が"iris" 、または(OR) Sample列の値が"white spiderlily" の行』

のように指定したい場合は

Python

1B1_B2 = df[(df["Sample"] == "iris") | (df["Sample"] == "white spider lily")]

です。

または
『Sample列の値が("iris"、"white spiderlily") のどれかである行』
のように指定し

Python

1B1_B2 = df[df["Sample"].isin(["iris", "white spider lily"])]

という方法もあります。

投稿2020/05/01 03:27

編集2020/05/01 03:31
magichan

総合スコア15898

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

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

Savanof

2020/05/01 03:34

すいません、完全に自分が条件式のあたりを勘違いしてました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問