Pandas Читайте Excel и держите конечные нули для знаков доллара - PullRequest
0 голосов
/ 13 января 2020

панд == 0.25.3 python 3.7

У меня есть таблица Microsoft Excel, которую я хочу прочитать в pandas. В настоящее время, когда я беру ячейку с дробной валютой, заканчивающейся на 0 (например, 12.50), вывод в pandas равен 12.5. Я хочу, чтобы это работало с любой ячейкой, в которой это происходит (например, я не буду знать ячейку раньше времени).

В Excel число выглядит как $12.50 в ячейке. Когда я использую pandas read_excel, вывод будет 12.5. Он теряет как знак доллара, так и конечный ноль. В строке формата выше я вижу 12.5, так что, возможно, это проблема Excel, а не pandas.

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

Ячейка:

enter image description here

Код:

import pandas as pd
df = pd.read_excel('test.xlsx')
print(df)
print(df.dtypes)

Pandas:

amount 
 500.0 
2217.5

Кто-нибудь еще сталкивался с этой проблемой?

Спасибо

1 Ответ

0 голосов
/ 13 января 2020

Pandas не может прочитать числовой формат Excel, однако вы можете использовать библиотеку openpyxl и использовать метод .number_format для чтения форматов и анализа ваших данных в желаемом выводе.

from openpyxl import load_workbook
wb = load_workbook(filename = r'..\test.xlsx')
ws = wb['Sheet1']
a2 = ws['A2'].value
a2_num_format = ws['A2'].number_format
print(a2, a2_num_format)

Выход:

500 "$"#,##0.00;[Red]\-"$"#,##0.00
...