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

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

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

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

pandas

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

Q&A

解決済

1回答

322閲覧

あるデータフレームの値をもとに別のデータフレームから値の条件に合ったものを抽出する方法について

mi2

総合スコア63

Python 3.x

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

pandas

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

0グッド

0クリップ

投稿2020/10/03 12:02

編集2020/10/03 13:24

やりたいこと

<想定されるデータフレーム>

df_value x1 x2 x3 a b 10 a c 20 a b 23 o p 40
df x1 x2 x3 x4 a b 10 dog a c 20 cat a c 20 dog a b 23 cat a b 10 bird a b 21 dog a b 20 frog o p 40 tiger :

<作成したいデータフレーム>

df_new x1 x2 x3 x4 a b 10 dog a b 10 bird a c 20 cat a c 20 dog a b 23 cat o p 40 tiger

考えていること

カラムから条件式でという場合はdf[(df['x1'] == 'a']) & (df['x2'] == 'b']) & (df['x3'] == 10])]となると思うのですが、
複数行に拡張したときの書き方で手をこまねいております。

具体的には、以下のような形になるかと思います。

  1. df_valueの1行目、a b 10に合うものをdfから行抽出


2. df_valueの2行目、a b 20に合うものをdfから行抽出

3. df_valueの3行目、a b 23に合うものをdfから行抽出

4. df_valueの4行目、o p 40に合うものをdfから行抽出

5. 抽出結果として1つのデータフレームにする

上記、お知恵を拝借できますと幸いです。
何卒よろしくお願い申し上げます。

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

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

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

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

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

meg_

2020/10/03 12:14

> df[(df['x1'] == 'a']) & (df['x2'] == 'b']) & (df['x1'] == 10])] df['x1']が2回出てきますが、条件は上記で合っていますか?間違っていませんか?
mi2

2020/10/03 12:19

すみません、ありがとうございます。修正致しました。
guest

回答1

0

ベストアンサー

やりたいことがデータフレーム同士のマージであれば下記で出来ます。

Python

1df_new = pd.merge(df_value, df) 2print(df_new) 3# x1 x2 x3 x4 4# 0 a b 10 10 5# 1 a b 20 20 6# 2 a b 20 10 7# 3 a b 23 20

投稿2020/10/03 12:21

meg_

総合スコア10760

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

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

mi2

2020/10/03 12:48

ありがとうございます。 説明が悪くすみません、少し修正させて頂きましたので、ご確認頂けますと幸いですmm
meg_

2020/10/03 12:53

結果は同じだと思いますが違うのですか? 違うのであればどう違うのか説明してください。
mi2

2020/10/03 13:01

データフレーム同士をマージをしたいのではなく、x1, x2, x3の行ごとの条件に合うものを抽出するような形にしたいと考えております。
meg_

2020/10/03 13:17 編集

df_valueからdfに合致するものを抽出する、と意味は違いますか? 私は質問者さんの質問を理解できていないようですので、他の回答者の回答をお待ちください。
mi2

2020/10/03 22:59

dfからdf_valueに合致するものを抽出するやり方を理解できました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問