2016-07-21 4 views
0

Я очень новичок в модуле Pandas и пытаюсь создать сводную таблицу из своего файла Excel.Проблема создания таблицы pandas pivot с существующим файлом Excel

Вот мой код:

excel = pd.ExcelFile(filename) 
df = excel.parse 
df1 = df[['Product Description', 'Supervisor']] 

table1 = pd.pivot_table(df1, index = ['Supervisor'], 
          columns = ['Product Description'], 
          values = ['Product Description'], 
          aggfunc = [lambda x: len(x)], fill_value = 0) 
writer = pd.ExcelWriter(filename) 
table1.to_excel(writer, 'Pivot Table') 
writer.save() 


workbook.save(filename) 

Это дает мне эту ошибку: TypeError: 'instancemethod' object has no attribute '__getitem__'

супервизора и описание продукта являются две колонки, которые я использую для создания сводной таблицы. Происходит ли эта ошибка, потому что я не могу ссылаться на такие столбцы? Супервизор и описание продукта - это значения в первой ячейке каждого столбца. Нужно ли мне ссылаться на столбцы каким-то другим способом?

+0

На какой линии это дает вам ошибку? –

+0

Эта строка: 'df1 = df [['Product Description', 'Supervisor']]' – Harrison

ответ

0

parse - метод (функция, прикрепленная к объекту). Поэтому вам нужны скобки после имени метода i.e df = excel.parse().

См. the docs для получения подробной информации о том, как подавать аргументы вызова функции.

+0

Спасибо, что указали эту ошибку. Что бы я передал функцию синтаксического анализа, чтобы сделать эту работу? Я попытался дать ему 'sheetname = 0', но затем он дал мне эту ошибку:' KeyError: "['Supervisor'] не в индексе" ' – Harrison

+0

Пожалуйста, разместите свой DataFrame или образец (нажмите на ссылку в исходном вопросе, чтобы добавить Это). – Alex

+0

Могу ли я это сделать, просто написав 'print df1'? – Harrison

Смежные вопросы