Я обновляю версию панд с 1.3.5 до 2.2.2 в старом проекте. Я не очень хорошо знаком с пандами, и у меня осталось предупреждение о будущем:
БудущееПредупреждение:
Поведение to_datetime с unit при синтаксическом анализе строк устарело. В будущей версии строки будут анализироваться как строки даты и времени, что соответствует поведению без «единицы». Чтобы сохранить старое поведение, перед вызовом to_datetime явно приведите целые числа или числа с плавающей запятой к числовому типу.
Вот причины ошибки:
>>> from io import StringIO
>>> import json
>>> import pandas
>>>
>>> str = '{"Keyword":{"0":"TELECOM","1":"OPERATOR","Total":"Total"},"Type":{"0":"job_field","1":"title_class","Total":null},"Seniority Score":{"0":0.0,"1":-1.0,"Total":-1.0}}'
>>> df = pandas.read_json(StringIO(str), typ='frame', orient='records')
Насколько я понимаю, он должен что-то делать с целыми числами и числами с плавающей запятой, вероятно, представленными в виде строк в json, но я пробовал различные комбинации и не смог обойти предупреждение. Я в замешательстве, потому что вообще не вызываю функцию to_datetime.
Это может быть такая ошибка панд: github.com/pandas-dev/pandas/issues/47576
Предупреждение указывает, что в будущих версиях to_datetime в качестве входных данных будут приниматься только строки, в отличие от текущей версии, где вы можете указать единицу измерения (строка или целое число). Но странно, что вы получаете это предупреждение, поскольку я не вижу ни четкой ссылки на вызов to_datetime в предоставленном вами фрагменте, ни каких-либо данных о временных метках в вашем json.
Парсер json может вызывать datetime как часть своей внутренней логики для идентификации типов данных - можно себе представить, что разделение "2001-01-01" как даты и строки может происходить таким образом... но я только предполагаю.






Эта ошибка связана с наличием в индексе сочетания числовых и строковых значений.
Минимальный воспроизводимый пример, вызывающий ошибку:
s = '{"A":{"0":"X","Y":"Y"}}'
pandas.read_json(StringIO(s), typ='frame', orient='records')
Pandas использует to_datetime, чтобы определить dtype индекса, что вызывает предупреждение.
Скорее всего, это следует рассматривать как незначительную ошибку, поскольку она вызывает только предупреждение. Возможно, все же стоит сообщить, но, возможно, никаких действий предпринято не будет.
Спасибо, за информацию я пока откатился на ветку 1.5.x
Вероятно, это ошибка панд!