Python Pandas read_excel返回空Datafram

2024-10-01 09:21:01 发布

您现在位置: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只是两个简单的列…是不是太早了?在


Tags: 数据pathinfordataosfilesfilename
2条回答

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

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

另外,附加数据帧的速度非常慢。请尝试串联:

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

我也遇到过类似的问题,结果发现XLSX有两种类型:“Excel工作簿”(位于下图列表的顶部)和“Strict Open XML电子表格”(带有复选标记)。后者在pandas中返回一个空的电子表格,所以使用Excel工作簿(.xlsx)就不会有问题。在

enter image description here

相关问题 更多 >