質問編集履歴
4
再度 前提と修正しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -38,6 +38,8 @@
|
|
38
38
|
|
39
39
|
(りんご、バナナが元のファイルと重複している。
|
40
40
|
|
41
|
+
りんごのように元データでりんご、追加データでアップルと商品名が異なる場合もあるのがJANコードが重複していればスキップしたい(行の完全一致ではないので、pandas のdrop_duplicatesでは難しいかも・・)
|
42
|
+
|
41
43
|
|
42
44
|
|
43
45
|
|列4(商品名)|列15(JANコード)|
|
@@ -46,7 +48,7 @@
|
|
46
48
|
|
47
49
|
|きゅうり|5555555|
|
48
50
|
|
49
|
-
|
|
51
|
+
|アップル|111111|
|
50
52
|
|
51
53
|
|バナナ|バーコードなし|
|
52
54
|
|
3
自分で実行したコードを修正しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -120,9 +120,9 @@
|
|
120
120
|
|
121
121
|
|
122
122
|
|
123
|
-
df
|
123
|
+
df1 = pd.read_csv("./元データ.csv", encoding="cp932",header=None)
|
124
124
|
|
125
|
-
df
|
125
|
+
df2 = pd.read_csv("./追加データ.csv", encoding="cp932",header=None)
|
126
126
|
|
127
127
|
|
128
128
|
|
@@ -132,26 +132,20 @@
|
|
132
132
|
|
133
133
|
save_csv='./元データ.csv'
|
134
134
|
|
135
|
+
for x in df2.iloc[:, 15]:
|
135
136
|
|
137
|
+
if x in df1.iloc[:, 15]:
|
136
138
|
|
137
|
-
|
139
|
+
continue
|
138
140
|
|
139
|
-
|
141
|
+
|
140
|
-
|
141
|
-
if row in row2:
|
142
|
-
|
143
|
-
print(row) ← 重複してCSVに追記されないデータを出力
|
144
|
-
|
145
|
-
continue
|
146
142
|
|
147
143
|
else:
|
148
144
|
|
149
|
-
#元データに重複する値(列4、列15参照)がない行のみ、追加ファイルの行を元エータに追記する
|
150
|
-
|
151
|
-
with open(
|
145
|
+
with open(df1, 'a',encoding ='cp932') as f:
|
152
146
|
|
153
147
|
writer = csv.writer(f)
|
154
148
|
|
155
|
-
writer.writerow(df2.iterrows())
|
149
|
+
writer.writerow(df2.iterrows())#xが含まれる行を1行ずつ取り出す方法がわからない
|
156
150
|
|
157
151
|
```
|
2
説明文の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -59,6 +59,12 @@
|
|
59
59
|
結合したい(元ファイルに追記したい)
|
60
60
|
|
61
61
|
きゅうり、なす の重複していない行のみを元ファイルに追記したい(順次保存)
|
62
|
+
|
63
|
+
バーコードで重複チェックだけだと
|
64
|
+
|
65
|
+
バーコードが存在しないデータ(バナナ)が重複する可能性があるため
|
66
|
+
|
67
|
+
名前での一致でも重複したデータはスキップしたいです
|
62
68
|
|
63
69
|
|列4(商品名)|列15(JANコード)|
|
64
70
|
|
1
コード修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -146,6 +146,6 @@
|
|
146
146
|
|
147
147
|
writer = csv.writer(f)
|
148
148
|
|
149
|
-
writer.writerow(
|
149
|
+
writer.writerow(df2.iterrows())
|
150
150
|
|
151
151
|
```
|