条件に一致するデータ抽出について質問させてください。
参考にしているサイトは下記です。
https://python.civic-apps.com/map-reduce-filter/
「filter:条件に一致する要素のみ抽出する」
以下のようなコードとなっています(転載させていただきます)
python
1filter(lambda n:n%2==1, items) #lambda関数がTrueを返す要素(奇数)要素のみ抽出する 2[1, 2, 3] 3[x for x in items if x%2==1] #同じ事をリスト内包表記で。(最適な方法) 4[1, 3]
条件としている部分をリストにして、
リスト内の値と一つでも一致するなら抽出する。ということをしたいです。
all()関数を使えば実現可能かと思ったのですが、できませんでした。
ご存知のかたがいましたら、教えていただけるとありがたいです。
どうぞよろしくお願いいたします。
=======================
下記追記です。
コードは下記の様な感じです。
Python
1# -*- coding: utf-8 -*- 2import pandas as pd 3import csv 4import sys 5code = pd.read_csv("ほげほげ.csv",engine='python',encoding='utf-8') 6codelist = code.values.tolist() 7codelist = [ flatten for inner in kcl for flatten in inner ] 8 9with open("ほげほげ書き込み.csv",encoding='utf-8',errors='ignore') as f: 10 reader = csv.reader(f) 11 header = next(reader) 12 rows = [row for row in reader] 13 14with open("hogehogehoge.csv", "w", encoding='utf-8') as f: 15 writer = csv.writer(f, lineterminator = "\r\n") 16 writer.writerow(header) 17 nrows = list(filter(lambda row: row[10] == codelist, rows)) 18 writer.writerows(nrows)
下から二行目の部分のrow[10]とcodelistが一致しているもののみ、nrowsに代入したいと考えています。
#######################
更に追記
#######################
ほげほげ.csvが以下です。
品物 A(row[0]) B(row[1]) C(row[2]) あ 111 222 333 い 111 222 333 う 111 222 333 え 111 222 333 お 111 222 333 か 111 222 333 き 111 222 333 く 111 222 333 け 111 222 333 こ 111 222 333 さ 111 222 333 し 111 222 333
ほげほげ書き込み.csvが以下です。
Z 111 222 333 111 222 333 111 222 333 111 222 333
例えばこの場合、AとZを比較します。
そうなると、品物の「あ」「え」「き」「こ」
が抽出できる
というような感じです。
回答2件
あなたの回答
tips
プレビュー