我试图创建一个将文件名作为输入并仅使用pandas读取的函数。但是,当我运行程序时,它将引发错误。 这是我的代码:
import pandas as pd
import numpy as np
import csv
import re
product_description=[]
category=[]
def get_data(filename):
with open(filename,'r') as excelfile:
excelfilereader=pd.read_excel(filename)
next(excelfilereader)
for rows in excelfilereader:
product_description.append(str[rows][0])
category_description.append(str[rows][1])
return print(product_description)
get_data('D:\\android\\data1.xlsx')
这是错误:
TypeError Traceback (most recent call last)
<ipython-input-5-db04dbb9b801> in <module>()
16 return print(product_description)
17
---> 18 get_data('D:\\android\\data1.xlsx')
19
<ipython-input-5-db04dbb9b801> in get_data(filename)
10 with open(filename,'r') as excelfile:
11 excelfilereader=pd.read_excel(filename)
---> 12 next(excelfilereader)
13 for rows in excelfilereader:
14 product_description.append(str[rows][0])
TypeError: 'DataFrame' object is not an iterator
答案 0 :(得分:1)
您不需要使用with open(filename,'r') as excelfile:
。
熊猫可以直接读取excel文件。
如果您打算使用第二张excel文件
next(excelfilereader)
。您可以通过选项sheet_name
选择工作表
像这样excelfilereader=pd.read_excel(filename , sheet_name=0 ,
index_col=None)
header = None
该功能的完整代码如下
import pandas as pd
import numpy as np
import csv
import re
raw_xlsx_path='test.xlsx'
filename = raw_xlsx_path
product_description=[]
category=[]
def get_data(filename):
excelfilereader=pd.read_excel(filename , sheet_name=0 , index_col=None , header=None)
product_description = excelfilereader.iloc[:,0].values.tolist()
category_description = excelfilereader.iloc[:,1].values.tolist()
return print(product_description)
get_data(filename)