Я использую приведенный ниже код. Все работает, за исключением того, что после выполнения последней строки я получаю «TypeError: неподдерживаемый тип (ы) операндов для /: 'str' и 'int'".
Проблема, как выясняется, связана с конкретная проблема с ячейкой Excel, которая, кажется, распространена в более чем одном из файлов +80, которые я читаю в Python. Иногда некоторые ячейки в файлах Excel, которые я читаю, считаются пустыми в Excel, но не являются пустыми (это можно проверить в Excel с помощью функции ISBLANK ()). Чтение и импорт пустых ячеек не проблема, но проблема импорта / чтения пустых ячеек, которые пустые, чтобы быть пустыми, но не зарегистрированы как таковые в Excel.
Открытие файла Excel и выбор и удаление ячейки вручную (которая выглядела пустой, но каким-то образом регистрировалась как непустая в Excel), похоже, помогает. Однако я не хочу открывать каждый файл Excel и начинать выделять и удалять пустые ячейки для подтверждения. Также обратите внимание, что дело не в том, что рассматриваемая ячейка Excel просто содержит пробел (ie, ""), а не в том, что проблема, похоже, в чем-то другом.
Как можно справиться с это с Python / Pandas? Я перепробовал все решения в этом потоке, но ничего не получалось.
import openpyxl
import os
import pandas as pd
import time
from openpyxl import load_workbook
os.chdir('C://Files//Research')
directory = os.listdir('C://Files//Research')
df = pd.DataFrame()
start = time.time()
for file in directory:
if os.path.isfile(file):
file_name = file
workbook = load_workbook(filename = file, data_only=True)
sheet1 = workbook['3. ISO']
c5 = sheet1['C5'].value
c6 = sheet1['C6'].value
sheet11 = workbook['4. Survey Overview']
c10 = sheet11['C10'].value
c11 = sheet11['C11'].value
df = df.append(pd.DataFrame({
"File_name":file, "ISO":c5, "Output":c6,
"Nat":c10, "Urb": c11
}, index=[0]))
end = time.time()
print(end - start)
df['Output %'] = 100* (df['Output'] / df['Nat'])