2015-07-15 3 views
0

У меня есть проблемы писать одинаковые знаки из более DataFrame в файл Excel:
я прочитал в файле Excel, (который я хотел бы изменить в будущем), и записать DataFrame обратно в Файл Excel. Dataframe содержит равные знаки (=), которые появляются как 0 в выходном файле excel.Панды to_excel развращает «=»

Я уже проверил тип данных знака равенства, это unicode: u '='. Я прикрепил код, который я использую, плюс некоторый дополнительный отладочный вывод (который, я надеюсь, поможет).

fname = os.path.join(baseDIR, PARAMETERS_FILE) 
base_params = read_excel (fname, PARAMETERS_SHEET) 
base_params.override = False 
>>> base_params.operator 
0  rev 
1  rev 
2  rev 
3  rev 
4  rev 
5  rev 
6  rev 
7  rev 
8  rev 
9  >= 
10  = 
11  <= 
12  <= 
13  <= 
14  <= 
15  NaN 
16  = 
17  = 
18  = 
19  NaN 
Name: operator, dtype: object 
out_file = os.path.join(onDIR, PARAMETERS_FILE) 
writer = ExcelWriter(out_file) 
base_params.to_excel(writer, PARAMETERS_SHEET, index=False, encoding='utf-8') 
writer.save()  
>>> pd.show_versions() 

INSTALLED VERSIONS 
------------------ 
commit: None 
python: 2.7.10.final.0 
python-bits: 64 
OS: Windows 
OS-release: 7 
machine: AMD64 
processor: Intel64 Family 6 Model 58 Stepping 9, GenuineIntel 
byteorder: little 
LC_ALL: None 
LANG: de_AT 

pandas: 0.16.2 
nose: 1.3.7 
Cython: 0.22.1 
numpy: 1.9.2 
scipy: 0.15.1 
statsmodels: None 
IPython: 3.2.0 
sphinx: 1.3.1 
patsy: 0.3.0 
dateutil: 2.4.2 
pytz: 2015.4 
bottleneck: None 
tables: 3.2.0 
numexpr: 2.4.3 
matplotlib: 1.4.3 
openpyxl: None 
xlrd: 0.9.3 
xlwt: None 
xlsxwriter: 0.7.3 
lxml: 3.4.4 
bs4: 4.3.2 
html5lib: None 
httplib2: None 
apiclient: None 
sqlalchemy: 1.0.5 
pymysql: None 
psycopg2: None 

В файле вывода Excel я получаю; '=' заменяется на 0.

+0

Вы уверены, что значение в ячейке равно 0 и не просто представлено как 0? Excel enterprets = как формула и поэтому, вероятно, просто отобразит вывод пустой формулы, которая, вероятно, станет 0. – firelynx

ответ

1

Чтобы получить excel для отображения буквально того, что находится в ячейке, вам нужно добавить содержимое с помощью одной цитаты: ', это остановит его от попытки оценить содержимое как формула.

Таким образом, вместо того, чтобы писать "=", писать "'=" и т.д.

Или, конечно, изменить формат ячейки на Text. По умолчанию будет General, который попытается оценить все.

+0

Привет. 0 действительно является 0, а не представлением Excel =. (Я впервые нашел проблему, когда я читал файл на Python, и я изменил представление ячейки на текст, который все еще показывает 0 в Excel). Я также попытался заменить «=» на «» = « – allebasi

+0

» перед выполнением записи to_excel, но все тот же результат в файле Excel. – allebasi

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