teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2018/11/16 08:17

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -16,4 +16,33 @@
16
16
  それならこんなふうに書けますが。
17
17
  ```Python
18
18
  filter(lambda row: row[10] in codelist, rows)
19
- ```
19
+ ```
20
+
21
+ さらに追記
22
+ ---
23
+ 要件が発散してきて良く分からないので、考え得る中で一番簡潔な方法を示します。
24
+ ```Python
25
+ with open('ほげほげ.csv') as fin1, \
26
+ open('ほげほげ書き込み.csv') as fin2:
27
+
28
+ next(fin1)
29
+ next(fin2)
30
+
31
+ for line1, line2 in zip(fin1, fin2):
32
+ item, tag1 = line1.split()[:2]
33
+ tag2 = line2.rstrip()
34
+
35
+ if tag1 == tag2:
36
+ print(item)
37
+ ```
38
+
39
+ **実行結果**
40
+ ```
41
+
42
+
43
+
44
+
45
+ ```
46
+
47
+ pandasを使うならばフィルタリングはpandasの機能に頼った方が良いかと。
48
+ 読み取りでpandasを使ったりcsvモジュールを使ったり、使い分けている意味が良く分かりません。

2

追記

2018/11/16 08:17

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -6,4 +6,14 @@
6
6
  >>> gen = filter(lambda e: e in lst, range(0, 10, 2)) # 第一引数はlst.__contains__ でも可
7
7
  >>> list(gen)
8
8
  [4]
9
+ ```
10
+
11
+ 質問編集を受けて
12
+ ---
13
+ > row[10]とcodelistが一致しているもののみ
14
+
15
+ 『row[10]がcodelistに含まれるもののみ』という意味ではなく?
16
+ それならこんなふうに書けますが。
17
+ ```Python
18
+ filter(lambda row: row[10] in codelist, rows)
9
19
  ```

1

追記

2018/11/16 07:33

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -3,7 +3,7 @@
3
3
  こういうことですか?
4
4
  ```Python
5
5
  >>> lst = [3, 1, 4]
6
- >>> gen = filter(lambda e: e in lst, range(0, 10, 2))
6
+ >>> gen = filter(lambda e: e in lst, range(0, 10, 2)) # 第一引数はlst.__contains__ でも可
7
7
  >>> list(gen)
8
8
  [4]
9
9
  ```