Python: объект Data Frame не повторяется - PullRequest
0 голосов
/ 07 декабря 2018

Я попытался создать функцию, которая принимает имя файла в качестве ввода и просто читал его, используя панд.Однако, когда я запускаю программу, она выдает ошибку.Вот мой код:

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

1 Ответ

0 голосов
/ 07 декабря 2018
  1. вам не нужно использовать with open(filename,'r') as excelfile:.Pandas может читать файл Excel прямо.

  2. , если вы собираетесь использовать второй лист файла Excel с помощью next(excelfilereader).Вы можете выбрать лист с помощью опции sheet_name, например: excelfilereader=pd.read_excel(filename , sheet_name=0 , index_col=None)

  3. . В своем коде вы добавляете содержимое из первой строки, поэтому вам нужно установить header = None
* 1017.* Полный код для этой функции, как показано ниже
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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...