Python Pandas read_excel返回空Dataframe

时间:2017-09-12 15:59:33

标签: python

读取一个简单的xls返回空数据帧,无法弄明白我的生活:

path = ('c:/Users/Desktop/Stuff/Ready')
files = os.listdir(path)
print(files)

files_xlsx = [f for f in files if f[-3:] == 'xlsx']

readyorders = pd.DataFrame()
for filename in files_xlsx:
    with open(os.path.join(path, filename)) as f:
        data = pd.read_excel(f)
        readyorders = readyorders.append(data)

print(readyorders)

excel只是两个简单的专栏......现在还太早了吗?

3 个答案:

答案 0 :(得分:2)

f[-3:] == 'xlsx'将永远不会成为现实,因为您正在评估最后三个字符并将其与四个字符的字符串进行比较。

尝试f[-4:] == 'xlsx'

顺便说一句,附加数据帧非常慢。请尝试连接:

readyorders = pd.concat([pd.read_excel(f) for f in files if f[-5:] == '.xlsx']

答案 1 :(得分:0)

我遇到了类似的问题,结果发现有两种XLSX类型:“ Excel工作簿”(在下图的列表顶部)和“严格打开XML电子表格”(带有复选标记)。后者以pandas返回一个空的电子表格,因此使用Excel工作簿(.xlsx),您将不会遇到任何问题。

enter image description here

答案 2 :(得分:0)

我遇到了同样的问题,后来我发现这是因为excel文件中有很多工作表,而我没有指定工作表名称。