Альтернатива infer_types в read_html с использованием Pandas 0.17Python

Программы на Python
Ответить
Anonymous
 Альтернатива infer_types в read_html с использованием Pandas 0.17

Сообщение Anonymous »

Я использовал pandas read_html много лет назад до версии 0.15.0, используя опцию infer_types=False, как показано в документации v0.12.0.
Очевидно, что поддержка этого была прекращена в версии 0.13 и удалена в версии 0.15.
Вот пример, с которым я сейчас сталкиваюсь:

Код: Выделить всё

>>> import pandas as pd

>>> html1 = '   C1 C2 C3    $1.0 1G 50.0   $73.0 2 94.0  '

>>> html2 = '   C1 C2 C3    $4.0 1 42.0   $33.0 2.2 50.0  '

>>> df1 = pd.read_html(html1)

>>> df1[0].dtypes
0     object
1     object
2    float64

>>> df2 = pd.read_html(html2)

>>> df2[0].dtypes
0     object
1    float64
2    float64
Как вы можете видеть, проблема, с которой я столкнулся, происходит в столбце C2. В df1 столбец dtype анализировался как объект (из-за присутствия G в 0-м индексе), а в df2 столбец dtype анализировался как int64 ( из-за наличия десятичных знаков).
Решение, которое я придумал:

Код: Выделить всё

df1 = df1.astype("object")

df2 = df2.astype("object")
Проблема, с которой я столкнулся с этим решением, заключается в том, что если у меня есть int, а также float в столбце, я хочу сохранить int< /code> но read_html автоматически выводит значение int как число с плавающей запятой, и когда я меняю dtype столбца на str или объект, тот факт, что число было int не удается вернуться к строковому формату.
Мой вопрос: как мне заголовком html и установить ограничения на типы данных из версий позже v0.17 в Pandas.

Подробнее здесь: https://stackoverflow.com/questions/370 ... andas-0-17
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»