Python/Pandas:Excel单元格显示为空但不是空的问题

2024-10-01 11:30:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行下面的代码。除了在运行最后一行之后,我得到一个“TypeError:unsupported operand type for/:'str'和'int'”错误之外,一切都正常

事实证明,这个问题与一个特定的Excel单元格问题有关,这个问题似乎在我读入Python的+80文件中不止一个文件中普遍存在。有时,我正在读取的Excel文件中的某些单元格在Excel中显示为空,但不是空的(这可以通过ISBLANK()函数在Excel中进行检查)。读取和导入空单元格不是问题,但导入/读取空单元格为空但未通过Excel注册为空是问题

打开Excel文件并手动选择和删除单元格(该单元格显示为空,但在Excel中以非空的方式注册)似乎可以做到这一点。但是,我不想打开每个Excel文件并开始选择和删除空单元格以确保安全。还要注意的是,问题中的Excel单元格并不是只包含了一个空格(即“”),而是没有,所以问题似乎是其他的

如何使用Python/Pandas处理这个问题?我在this线程中尝试了所有的解决方案,但似乎没有任何效果

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'])

Tags: 文件importdfforoutputtimevalueos