您好我很抱歉打扰但是我在导入excel文件时遇到了一些重大问题我希望有人可以给出一些建议,我已经尝试过以前在stackflow上发布的各种方法,但它们似乎都没有工作。
import pandas as pd
# making an excel data sheet
df = pd.DataFrame({'Dox Dossage': [1,5,10,100,500,1000], 'MP': [7,35,70,700,3500,7000]})
writer = pd.ExcelWriter('Michael4-3-17', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()
import glob
print(glob.glob('Michael4-3-17*'))
graphfile = glob.glob('Michael4-3-17*')
df1 = pd.read_excel(open(graphfile), sheetname=None)
我一直得到的错误是:
- > 4 df1 = pd.read_excel(open(graphfile),sheetname = None)
TypeError:预期的str,bytes或os.PathLike对象,而不是列表
答案 0 :(得分:2)
在我看来,有两个问题:(1)使用glob,你得到一个列表,(2)使用open(graphfile)
,你没有传递文件名。您只需执行以下操作即可简化:
graphfile = 'Michael4-3-17.xlsx'
df1 = pd.read_excel(graphfile, sheetname=None)
但也许你正在使用glob,因为你有多个文件,在这种情况下你可以这样做(我有两个文件,Micahael4-3-17有和没有xlsx扩展名):
import glob
print(glob.glob('Michael4-3-17*'))
graphfile = glob.glob('Michael4-3-17*')
for file in graphfile:
df1 = pd.read_excel(file, sheetname=None)
print(df1)
产生:
['Michael4-3-17', 'Michael4-3-17.xlsx']
{'Sheet1': Dox Dossage MP
0 1 7
1 5 35
2 10 70
3 100 700
4 500 3500
5 1000 7000}
{'Sheet1': Dox Dossage MP
0 1 7
1 5 35
2 10 70
3 100 700
4 500 3500
5 1000 7000}