Я написал небольшой цикл, чтобы сделать это, поскольку у меня не было строк в DataFrame, но в списке. Таким образом, вы также можете добавить инструкцию little для оператора float:
output= ''
input = 'whatever.007'
for letter in input :
try :
int(letter)
output += letter
except ValueError :
pass
if letter == '.' :
output += letter
output = float (output)
или вы можете использовать int (output), если хотите.
Я полагаю, что необходимо установить опцию в строке подключения для принуждения текстового импорта вместо того, чтобы автоматически обнаружить его.
Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=c:\path\to\myfile.xlsx;
Extended Properties=\"Excel 12.0 Xml;IMEX=1\";
Ваш milage может варьироваться в зависимости от версии, которую Вы установили. Расширенное свойство IMEX=1 говорит Excel рассматривать смешанные данные как текст.
Добавление префикса содержания ячейки с 'силами Excel для наблюдения его как текст вместо числа.' Не будет отображен в Excel.
Существует взлом реестра, который может вынудить Excel считать больше, чем первые 8 строк при чтении столбца для определения типа:
Изменение
HKLM\Software\Microsoft\Jet\4.0\Engines\Excel\TypeGuessRows
Быть 0 для чтения всех строк или другого числа для установки его на то количество строк.
Не то, чтобы этому поразят slighht производительность.
Я думаю способ сделать, это должно было бы отформатировать источник, который Excel регистрирует таким образом, что столбец отформатирован как текст вместо Общего. Выберите весь столбец и щелчок правой кнопкой и выберите ячейки формата, выберите текст из списка опций.
Я думаю, что это явно определило бы это, содержимое столбца является текстом и должно рассматриваться как таковое.
Сообщите мне, работает ли это.
Сохранив файл, поскольку файл разделенного текста вкладки также работал хорошо.
---старый, К сожалению, мы не можем полагаться на столбцы документа Excel для пребывания в конкретном формате, поскольку пользователи будут вставлять данные в него регулярно. Я не хочу, чтобы приложение отказало, если мы полагаемся на определенный тип данных для столбца.
добавление префикса 'работало бы, там разумный способ сделать это программно, после того как данные уже существуют в документе Excel?