回答編集履歴

3

追記

2018/11/16 08:17

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -35,3 +35,61 @@
35
35
  filter(lambda row: row[10] in codelist, rows)
36
36
 
37
37
  ```
38
+
39
+
40
+
41
+ さらに追記
42
+
43
+ ---
44
+
45
+ 要件が発散してきて良く分からないので、考え得る中で一番簡潔な方法を示します。
46
+
47
+ ```Python
48
+
49
+ with open('ほげほげ.csv') as fin1, \
50
+
51
+ open('ほげほげ書き込み.csv') as fin2:
52
+
53
+
54
+
55
+ next(fin1)
56
+
57
+ next(fin2)
58
+
59
+
60
+
61
+ for line1, line2 in zip(fin1, fin2):
62
+
63
+ item, tag1 = line1.split()[:2]
64
+
65
+ tag2 = line2.rstrip()
66
+
67
+
68
+
69
+ if tag1 == tag2:
70
+
71
+ print(item)
72
+
73
+ ```
74
+
75
+
76
+
77
+ **実行結果**
78
+
79
+ ```
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+ ```
90
+
91
+
92
+
93
+ pandasを使うならばフィルタリングはpandasの機能に頼った方が良いかと。
94
+
95
+ 読み取りでpandasを使ったりcsvモジュールを使ったり、使い分けている意味が良く分かりません。

2

追記

2018/11/16 08:17

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -15,3 +15,23 @@
15
15
  [4]
16
16
 
17
17
  ```
18
+
19
+
20
+
21
+ 質問編集を受けて
22
+
23
+ ---
24
+
25
+ > row[10]とcodelistが一致しているもののみ
26
+
27
+
28
+
29
+ 『row[10]がcodelistに含まれるもののみ』という意味ではなく?
30
+
31
+ それならこんなふうに書けますが。
32
+
33
+ ```Python
34
+
35
+ filter(lambda row: row[10] in codelist, rows)
36
+
37
+ ```

1

追記

2018/11/16 07:33

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  >>> lst = [3, 1, 4]
10
10
 
11
- >>> gen = filter(lambda e: e in lst, range(0, 10, 2))
11
+ >>> gen = filter(lambda e: e in lst, range(0, 10, 2)) # 第一引数はlst.__contains__ でも可
12
12
 
13
13
  >>> list(gen)
14
14