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

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

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

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

Q&A

解決済

3回答

540閲覧

配列を、特定の数字で取り出したい

rink

総合スコア80

Python 3.x

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

0グッド

0クリップ

投稿2021/10/15 10:36

text

1# name age state point 2# 0 Alice 24 NY 64 3# 1 Bob 42 CA 92 4# 2 Charlie 18 CA 70 5# 3 Dave 68 TX 70 6# 4 Ellen 24 CA 88 7# 5 Frank 30 NY 57

上の様なデータフレームがあったとして、

python

1list = [64, 70, 57]

の様な配列があったとします。この場合、配列に入っている番号と、データフレームのpointでマッチする部分をデータフレームで取り出したいです。データフレームをdataframeとすると、
自分は、

python

1dataframe[dataframe['point'] in list] 2 3dataframe[dataframe['point'] == index for index in list]

を考えたのですが、いずれもエラーになってしまいました。どのようにすれば、取り出すことができますでしょうか。ご教示いただけますと幸いです。

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

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

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

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

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

guest

回答3

0

すでに回答がついていますが、別解として、isinメソッドを使っても目的を達することができます。

python

1>>> df 2 name age state point 30 Alice 24 NY 64 41 Bob 42 CA 92 52 Charlie 18 CA 70 63 Dave 68 TX 70 74 Ellen 24 CA 88 85 Frank 30 NY 57 9>>> lst = [64, 70, 57] 10>>> df[df['point'].isin(lst)] 11 name age state point 120 Alice 24 NY 64 132 Charlie 18 CA 70 143 Dave 68 TX 70 155 Frank 30 NY 57

投稿2021/10/15 11:42

etherbeg

総合スコア1195

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

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

rink

2021/10/15 11:46

ありがとうございます!!! 自分もisin 使えるな、と思い試していたんですけど、inisになってました(笑) ありがとうございます!!!<(_ _)>
rink

2021/10/15 11:46

英語にすらなってないんですが(笑)
guest

0

ベストアンサー

以下のようにします。

python

1>>> print(df) 2 name age state point 30 Alice 24 NY 64 41 Bob 42 CA 92 52 Charlie 18 CA 70 63 Dave 68 TX 70 74 Ellen 24 CA 88 85 Frank 30 NY 57 9>>> lst = [64, 70, 57] 10>>> print(df[df['point'].apply(lambda x: x in lst)]) 11 name age state point 120 Alice 24 NY 64 132 Charlie 18 CA 70 143 Dave 68 TX 70 155 Frank 30 NY 57

applyの使いかたは、pandasで要素、行、列に関数を適用するmap, applymap, applyをお読みください。

投稿2021/10/15 11:31

ppaul

総合スコア24670

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

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

rink

2021/10/15 11:40

わかりやすくありがとうございます!! なるほど、lambdaを使うんですね。。。大変勉強になります!ありがとうございました! またよろしくお願いいたします<(_ _)>
guest

0

上記のようなデータフレームを格納した後に、PointをTBLの添え字にして再構築(再格納)してから処理すればコーディングとしては楽にできると思います。

投稿2021/10/15 11:22

YagiYukio

総合スコア15

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

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

rink

2021/10/15 11:42

アドバイスありがとうございます! 確かに分割してやってもできましたね。。難しく考えすぎていました<(_ _)> 勉強になりました!ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問