csvファイルに欠落している行のデータを追加する際に問題があります。各顧客のcsvファイルから行を読み込み、行にあるデータをリストに追加しています。各顧客は、例のイメージで緑色で強調表示されている同じIDを持つ必要があります。次の顧客が必要なすべてのIDを持つ行を持っていない場合、これらの行のリストに0の値を追加する必要があります。そのため、黄色で強調表示された顧客は、緑色のデータリストと同じ数の値をデータリストに追加する必要があります。Python:csvファイルから同じ行を読み取る - 論理
私は各行を読み込み、そのIDと私が作成したすべてのIDのリストを比較しようとしていますが、最初のIDについていて、これが正しいかどうかはわかりませんidの値がidからリストのidに等しくなるまで(私は行のデータをリストに追加するためにこれを行います)。ご提案があれば教えてください。
注:は、idをして考慮のみの列を取る場合は、これらの2人の顧客のために、私はこのように見えるようにリストをしたいと思います:list_with_ids = [410, 409, 408, 407, 406, 405, 403, 402, **410, 409, 408, 407, 406, 405, 403, 402**]
を。だから私は最初に必要なID410を最初に追加し、次に409だけを追加する方法を探しています。 - と同じ端にある2つの不足しているIDを付加します、403 402
コード: デフ書込データ(ワークブック): [...]
# Lists.
list_cust = []
list_quantity = [] # from Some_data columns
# Get the start row in the csv file.
for row in range(worksheet.nrows):
base_id = str(410)
value = worksheet.cell(row, 1).value
start = str(value)
if base_id [0] == start[0]:
num_of_row_for_id = row
# Append the first id.
first_cust = str(worksheet.cell(num_of_row_for_id, 0).value)
list_cust.append(first_cust)
# Needed to count id's.
count = 0
# List with all needed id's for each customer.
# instead of ... - all ids' in green from the image.
all_ids = [....]
# Get data.
for row in range(worksheet.nrows):
next_id = str(worksheet.cell(num_of_row_for_id, 1).value)
cust = str(worksheet.cell(num_of_row_for_id, 0).value)
# Append id to the list.
list_cust.append(cust)
# Needed to separate rows for each customer.
if list_cust[len(list_cust)-1] == list_cust[len(list_cust)-2]:
# Get data: I read columns to get data.
# Let's say I read col 4 to 21.
for col_num in range(3, 20):
# Here is the prolem: ############################
if next_id != all_ids[count]:
list_quantity.append(0)
if next_id == all_ids[count]:
qty = worksheet.cell(num_of_row_for_id, col_num).value
list_quantity.append(qty)
# Get the next row in reverse order.
num_of_row_for_id -= 1
# Increment count for id's index.
if list_cust[len(list_cust)-1] == list_cust[len(list_cust)-2]:
# 8 possible id's.
if count < 7:
count += 1
else:
count = 0
(両方とも上記の解決策のためには)理解するのは難しいです。前/後(すなわち、入力/希望出力)のサンプルデータで説明できますか?現在の望ましくない結果を表示します。 – Parfait
各顧客はIDの同じセットを取得し、ミスを記入し、descendig順にソートする必要がありますか?それだけでいいの?スクリーンショットは入力されていますか? – Parfait