我正在製作一個Python腳本,它使用xlrd
庫來解析Excel文件。 我想要做的是計算不同的列if
單元格包含一定的值。否則,跳過這些值。然後將輸出存儲在字典中。 這裏就是我試圖做的:使用python跳過excel行
import xlrd
workbook = xlrd.open_workbook('filter_data.xlsx')
worksheet = workbook.sheet_by_name('filter_data')
num_rows = worksheet.nrows -1
num_cells = worksheet.ncols - 1
first_col = 0
scnd_col = 1
third_col = 2
# Read Data into double level dictionary
celldict = dict()
for curr_row in range(num_rows) :
cell0_val = int(worksheet.cell_value(curr_row+1,first_col))
cell1_val = worksheet.cell_value(curr_row,scnd_col)
cell2_val = worksheet.cell_value(curr_row,third_col)
if cell1_val[:3] == 'BL1' :
if cell2_val=='toSkip' :
continue
elif cell1_val[:3] == 'OUT' :
if cell2_val == 'toSkip' :
continue
if not cell0_val in celldict :
celldict[cell0_val] = dict()
# if the entry isn't in the second level dictionary then add it, with count 1
if not cell1_val in celldict[cell0_val] :
celldict[cell0_val][cell1_val] = 1
# Otherwise increase the count
else :
celldict[cell0_val][cell1_val] += 1
所以在這裏你可以看到,我指望的「cell1_val」值,每個「cell0_val」的數量。但是我想在執行總和並將其存儲在字典中之前跳過那些在相鄰列的單元格中具有「toSkip」的值。 我在這裏做錯了事,我覺得解決方案更簡單。 任何幫助,將不勝感激。謝謝。
這裏是我的薄片的一個例子:
cell0 cell1 cell2
12 BL1 toSkip
12 BL1 doNotSkip
12 OUT3 doNotSkip
12 OUT3 toSkip
13 BL1 doNotSkip
13 BL1 toSkip
13 OUT3 doNotSkip
如果有幫助,可能要查看[DataNitro](https://datanitro.com/)。 – jdotjdot
如果您提供了一些示例數據,以便我們可以更好地查看您正在處理的工作表,那麼這將有所幫助。當我編寫你腦中迭代的數據時,很難提供幫助,尤其是當我不清楚「toSkip」是在你跳過的單元格還是在它旁邊的單元格中。 – jdotjdot
@jdotjdot我編輯了我的問題。謝謝。 – salamey