读取一个返回空数据框的简单 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 只是两个简单的列...是不是太早了?
我也遇到了同样的问题,后来我发现这是因为我的excel文件中有很多工作表,而我没有指定工作表名称。
有时还有一个“隐藏工作表”,它会导致导出错误。那么您应该为工作表使用sheet_name参数,或者您也可以使用
sheet_name=None
。然后你会得到一个包含隐藏工作表的空 df 和其他数据的字典
f[-3:] == 'xlsx'
永远不会是真的,因为您正在评估最后三个字符并将其与四个字符的字符串进行比较。
尝试
f[-4:] == 'xlsx'
顺便说一句,附加数据帧非常慢。 尝试连接:
readyorders = pd.concat([pd.read_excel(f) for f in files if f[-5:] == '.xlsx']
我的返回空数据框,我检查:
xl = pd.ExcelFile(path)
print(xl.sheet_names) # see all sheet names
我发现了一个隐藏的工作表名称“Kangatang”
我谷歌了一下,知道它是病毒,所以你应该检查一下你的