Во-первых, прочтите CSV в 2D-список в Python. Затем l oop через столбец, который вы хотите редактировать, и сохраните в памяти значение последней заполненной ячейки, вставляя это значение во все пустые строки, пока не достигнете новой ячейки со значением.
Что-то как это:
csv_list = [["Stuff", " ", "", "", "Other Stuff", "", "", "Final"], ["whatever", "x",
" ", " ", "", " ", "", ""]] # Here we are assuming that columns are the primary index
print("List before filling in blanks: ", csv_list)
prev_val = csv_list[0][0] # Assume first cell is not blank
for i in range(len(csv_list[0]) - 1): # Loop through first column
if csv_list[0][i].strip() == "": # Check if cell is empty
csv_list[0][i] = prev_val # Fill in cell if empty
else:
prev_val = csv_list[0][i] # Set new prev_val if cell is not empty
print("After: ", csv_list)
Что печатает:
List before filling in blanks: [['Stuff', ' ', '', '', 'Other Stuff', '', '', 'Final'],
['whatever', 'x', ' ', ' ', '', ' ', '', '']]
After: [['Stuff', 'Stuff', 'Stuff', 'Stuff', 'Other Stuff', 'Other Stuff', 'Other Stuff', 'Final'],
['whatever', 'x', ' ', ' ', '', ' ', '', '']]