#python-2.7 #pandas #styleframe
#python-2.7 #pandas #рамка стиля
Вопрос:
У меня есть файл, подобный so, который я считываю из Excel:
Year Month Day
1 2 1
2 1 2
Я хочу указать ширину столбца, которую распознает Excel. Я хотел бы сделать это в pandas, но я не вижу возможности. Я пытался сделать это с помощью модуля StyleFrame
.
Это мой код:
from StyleFrame import StyleFrame
import pandas as pd
df=pd.read_excel(r'P:File.xlsx')
excel_writer = StyleFrame.ExcelWriter(r'P:File.xlsx')
sf=StyleFrame(df)
sf=sf.set_column_width(columns=['Year', 'Month'], width=4.0)
sf=sf.set_column_width(columns=['Day'], width=6.00)
sf=sf.to_excel(excel_writer=excel_writer)
excel_writer.save()
но форматирование не сохраняется, когда я открываю новый файл.
Есть ли способ сделать это в pandas? Я бы даже использовал для этого решение на чистом Python, практически все, что работает.
Комментарии:
1. Для меня это работает нормально. Какую версию StyleFrame вы используете?
import StyleFrame ; print(StyleFrame._version_)
2. версия 0.1.5 — это то, что я использую
3. Я предполагаю, что это выглядит так, как будто, когда я открываю файл Excel, ширина столбца визуально изменяется. Но когда я щелкаю правой кнопкой мыши по столбцу и выбираю
column width
, моя спецификация не соответствует тому, что там написано4. Да, фактические значения ширины в Excel, похоже, на 0,62 меньше желаемого. Вы можете попытаться увеличить ширину и установить очень большую ширину, просто чтобы убедиться, что ваши изменения действительно сохраняются в файле. Я изучу это и исправлю для следующей версии 🙂
5. Да, для меня это на 0,76 меньше, чем ожидалось, но все равно соответствует.
Ответ №1:
Что касается вашего вопроса о том, как удалить заголовки, вы можете просто перейти header=False
к to_excel
:
sf.to_excel(excel_writer=excel_writer, header=False)
.
Обратите внимание, что это все равно приведет к выделению первой строки таблицы жирным шрифтом. Если вы не хотите такого поведения, вы можете обновить до версии 0.1.6, которую я только что выпустил.