python 未来警告:在将来的版本中,空系列的默认dtype将是"object"而不是"float64

vm0i2vca  于 2023-02-28  发布在  Python
关注(0)|答案(2)|浏览(258)

命令-df = pd. concat([df,df ["XYZ"].应用(pd.系列)],轴= 1)
错误-
未来警告:在将来的版本中,空Series的默认dtype将是"object",而不是"float64"。请显式指定dtype以消除此警告。
XYZ是一个带有Ordered Dictionary的列,尝试为key = Name命令提取相应的值可以正常工作,但会引发一个未来警告。
样本数据-
| 身份证|XYZ|
| - ------|- ------|
| 1个|有序字典([("属性",有序字典([("类型","XYZ"),("网址","某些链接")]),("名称","ABC")])|
| 第二章|有序字典([("属性",有序字典([("类型","XYZ"),("网址","某些链接")]),("名称","PQR")])|

j5fpnvbx

j5fpnvbx1#

显式指定dtype以消除此警告。
您可以通过以下方式隐式地通知pd.Series应该使用什么dtype

import functools
import pandas as pd
Float64Series = functools.partial(pd.Series,dtype="float64")
s = Float64Series([1,2,3,4,5])  # these would be turned into int64 if you would use pd.Series
print(s)

给出输出

0    1.0
1    2.0
2    3.0
3    4.0
4    5.0
dtype: float64

观察.0 s和dtype是否为float64

fzwojiic

fzwojiic2#

尝试使用pd.json_normalize

out = pd.concat([df, pd.json_normalize(df['XYZ'])], axis=1)
print(out)

# Output
   Id                                                XYZ Name attributes.type attributes.url
0   1  {'attributes': {'type': 'XYZ', 'url': 'somelin...  ABC             XYZ       somelink
1   2  {'attributes': {'type': 'XYZ', 'url': 'somelin...  PQR             XYZ       somelink
2   3  {'attributes': {'type': 'XYZ', 'url': 'somelin...  RST             XYZ       somelink
3   4  {'attributes': {'type': 'XYZ', 'url': 'somelin...  DEF             XYZ       somelink

相关问题