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

Я пытался использовать Pandas, но когда я открываю его с помощью Python, используя pd.read_excel, все эти типы ячеек исчезают.

Например, ячейка, содержащая '50 USD' (ячейка, содержащая тип валюты), будет отображаться как '50'.

Есть ли в Python метод, который может читать эти ячейки с сохраненными типами ячеек?

Благодарность

0
Yuval Ezrati 19 Апр 2020 в 13:21
Вы смотрели openpyxl. это может потребовать немного возиться, но возможно
 – 
sammywemmy
19 Апр 2020 в 13:31
Какой будет питон dtype для валюты? Имо нет такого типа данных. Однако вы можете анализировать даты
 – 
Björn
19 Апр 2020 в 15:15
1. Я проверил, и openpyxl не сохраняет валюту, но сохраняет даты (но я думаю, что pandas уже это делает).
 – 
Yuval Ezrati
21 Апр 2020 в 11:14
2. Я не знаю, что такое dtype, потому что до сих пор не могу его уловить. Оптимальным для меня случаем является то, что значения и тип ячейки будут восприниматься как одна строка.
 – 
Yuval Ezrati
21 Апр 2020 в 11:16

1 ответ

Я думаю, вы можете путать значения ячеек и форматирование ячеек. Например, при значении 50 долларов США Excel сохраняет числовое значение, а затем применяет формат валюты для отображения. Поэтому правильно читать его в pandas как целое число, если вы хотите суммировать, усреднять или иным образом анализировать этот столбец.

Даты должны анализироваться автоматически, а если это не так, read_excel имеет параметр parse_dates, который позволяет вам это делать.

Теперь, в зависимости от того, как вы хотите вывести данные после того, как вы манипулировали ими в pandas, у вас может быть функция, которая выводит новый фрейм данных, который преобразует все значения в строку и применяет форматы к разным столбцам. Или, если вы работаете в блокноте, вы можете использовать API стилей pandas. Вы также можете записать файл обратно в excel с помощью pandas, а затем программно применить стили с помощью openpyxl.

0
Eric Truett 19 Апр 2020 в 21:58
Я знаю, что это не встроенная часть самой ячейки, но если я хочу сохранить ее, какие у меня есть варианты? потому что я нашел методы linux, которые сохраняют эти типы в виде строк при преобразовании в файл csv, но в Python я не нашел ни одного.
 – 
Yuval Ezrati
21 Апр 2020 в 11:02