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