Я использую pandas 0.15
и openpyxl 2.2.0
в качестве механизма записи, но та же проблема возникает и с pandas 0.16
.Pandas - Экспорт заголовка и индекса данных в Excel вызывает TypeError
Мне нужно экспортировать файл данных pandas в файл .xlsx
. Dataframe очень просто - что-то вроде:
col_A col_B col_C
0 1 100 AB
1 2 200 AC
2 3 300 AD
Я могу экспортировать содержимое dataframe (т.е. без индексных меток и имен столбцов):
df.to_excel(path_to_xlsx_file, sheet_name, header=False, index=False)
Однако, если я включаю либо индексные метки или имена столбцов (или оба), я получаю TypeError. Это:
df.to_excel(path_to_xlsx_file, sheet_name, header=False, index=True)
или это:
df.to_excel(path_to_xlsx_file, sheet_name, header=True, index=False)
причины этого:
Traceback (most recent call last):
File "<ipython-input-11-a60810c2c9c2>", line 1, in <module>
runfile('F:/mine/python/pandas_tests.py', wdir='F:/mine/python')
File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 601, in runfile
execfile(filename, namespace)
File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 66, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)
File "F:/mine/python/pandas_tests.py", line 25, in <module>
df.to_excel(path_to_xlsx_file, sheet_name, header=True, index=False)
File "C:\Python27\lib\site-packages\pandas\util\decorators.py", line 88, in wrapper
return func(*args, **kwargs)
File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 1260, in to_excel
startrow=startrow, startcol=startcol)
File "C:\Python27\lib\site-packages\pandas\io\excel.py", line 705, in write_cells
xcell.style = xcell.style.copy(**style_kwargs)
File "C:\Python27\lib\site-packages\openpyxl-2.2.0-py2.7.egg\openpyxl\styles\styleable.py", line 107, in style
protection=self.protection
File "C:\Python27\lib\site-packages\openpyxl-2.2.0-py2.7.egg\openpyxl\styles\__init__.py", line 42, in __init__
self._font = font
File "C:\Python27\lib\site-packages\openpyxl-2.2.0-py2.7.egg\openpyxl\descriptors\base.py", line 35, in __set__
raise TypeError('expected ' + str(self.expected_type))
TypeError: expected <class 'openpyxl.styles.fonts.Font'>
Я не могу использовать xlsxwriter как dataframe должны быть экспортированы в существующий файл.
Невозможно воспроизвести. Прекрасно подходит для меня. Python 2.7.x и Pandas 0.16 –
, какой пакет python вы используете? Я запускаю python (x, y) 2.7.9.0 на 64-разрядной машине Windows 7. Может ли проблема быть связана с OS или пакетом python, который я использую? – snowlion
Возврат к предыдущей версии openpyxl (2.1.3) решил вопрос – snowlion