2017-11-27 36 views
0

私はPythonには比較的新しいので、データが入ったExcelシートの空きセル数を数えようとしています。私のコードはPython:データシートの空のセル数をカウントする

import xlrd 
import pandas as pd 
import openpyxl 
df = pd.read_excel('5train.xls') 

workbook = xlrd.open_workbook('5train.xls') 
worksheet = workbook.sheet_by_name('5train') 

#Task starts here 
empty = 0 
row_data = worksheet.nrows - 1 
row = 0 
cell = 0 
while row < row_data: 
    if worksheet.cell(0, 0).value == xlrd.empty_cell.value: 
     empty += 1 
     cell += 1 
    else: 
     pass 
    row += 1 
print("Number of empty cells in data sheet:", empty) 

を下回っているが、コードが一貫して「データシートの空のセルの数:0」を印刷されません:関係なく、セルが空になるようにプログラムをテストするために、私はいくつかの値を削除してきました空のセル数。すべてのポインタ?ありがとうございました!

+0

Excelシートには10​​4万行と数百の列が含まれています。すべての空白セルを数えたいですか?あるいは、あなたのデータをあるテーブル形式にして、そのテーブル範囲内の空白を数えたいのですか? –

答えて

0

.get_rows()を使用してデータを含む最後の行まで各行を繰り返し処理し、各行の各セルの値をチェックして空のセルを数えます。

workbook = xlrd.open_workbook('5train.xls') 
worksheet = workbook.sheet_by_name('5train') 

empty_cells = 0 
for row in worksheet.get_rows(): 
    empty_cells += sum(0 if c.value else 1 for c in row) 

あなたはそれワンライナーにしたい場合は、あなたが使用することができます。

empty_cells = sum(0 if c.value else 1 for row in worksheet.get_rows() for c in row) 
1

あなたは常にあなたのループ内で同じセルをチェックしてください。

if worksheet.cell(0, 0).value == xlrd.empty_cell.value: 

セルのみで空の場合は、行0と列0がチェックされます。

+0

どのように修正できますか? – wwii

関連する問題