次の構造の csv ファイルがあります。
A, 10
B, 11
C, 8
D, 12
A, 21
B, 7
D, 22
D, 15
C, 111
D, 50
A, 41
B, 32
C, 19
D, 11
行がA、B、C、D形式の場合、ファイル全体を読み取り、2列目にデータを保存したい。リストがあります:
my_list = [A, B, C, D]
そして、フォーマットされている場合は4行ごとにチェックmy_list
し、次のように読み取ってデータベースに保存します。
with open('csv_file.csv', 'rb') as csvfile:
the_file = csv.reader(csvfile.read().splitlines())
for idx, row in enumerate(islice(zip(*[the_file]*4), 100)):
my_model = Django_model()
if row[0][0] == my_list[0]:
if row[0][0] == my_list[0] and row[1][0] == my_list[1] and \
row[2][0] == my_list[2] and row[3][0] == my_list[3]:
my_model.a_field = row[0][1]
my_model.b_field = row[1][1]
my_model.c_field = row[2][1]
my_model.d_field = row[3][1]
my_model.save()
row
実際には、 の構造がと同じである場合にのみ機能しmy_list
ます。しかし、乱雑な部分 (A、B、D、D、C、D) に到達すると、行が正しく読み取られないため、多くの行がスキップされます。
問題は、次の興味深い行 (my_list
フォーマットに従う) にジャンプして読むにはどうすればよいかということです。一方、スキップされた行を別のリストに保存しますか?
Pandas が役立つと聞いたことがありますが、ドキュメントを調べたところ、このケースを解決する方法が見つかりませんでした。