Pandas read_json 未来警告:解析字符串时“to_datetime”与“unit”的行为已被弃用

问题描述 投票:0回答:1

我正在旧项目上将 pandas 版本从 1.3.5 更新到 2.2.2。我对 pandas 不太熟悉,我被未来警告困住了:

未来警告:

解析字符串时“to_datetime”与“unit”的行为已被弃用。在未来的版本中,字符串将被解析为日期时间字符串,匹配没有“单位”的行为。要保留旧的行为,请在调用 to_datetime 之前将 int 或 float 显式转换为数字类型。

错误原因如下:

>>> 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
函数。

python pandas
1个回答
0
投票

此错误是由于索引中混合了数字和字符串造成的。

触发错误的最小可重现示例是:

s = '{"A":{"0":"X","Y":"Y"}}'
pandas.read_json(StringIO(s), typ='frame', orient='records')

Pandas 使用

to_datetime
来推断索引的数据类型,从而触发警告。

这很可能被视为一个小错误,因为这只会触发警告。也许仍然值得报告,但可能不会采取任何行动。

© www.soinside.com 2019 - 2024. All rights reserved.