热线电话:13121318867

登录
2019-01-18 阅读量: 724
怎么通过pandas从JSON加载文本值

我有这个文件,我正在尝试阅读:

{"data": {"1547700225.3": Infinity, "1547700227.55": Infinity, "1547700229.8099997": Infinity, "1547700231.9899995": Infinity, "1547700140.05": Infinity}}

我无法控制文件的格式(即我必须使用我所拥有的)并且我有一些其他文件与我已经读过的格式相同。显然,这个的区别是“Infinity”值,当我这样做时会导致错误:

df1 = pd.read_json('filename.json').reset_index()

要么

df1 = pd.read_json('filename.json')

目的是读取此文件并使用append()将其添加到其他数据。

所有其他文件都正常工作,因为它们有一个数值,但是这个文件有一个我认为导致错误的单词。

所以显然我想读取这个文件,用null替换Infinity,如果有其他数值,那么它们就在那里。

我目前想到的方法是可以使用内置的python模块json来处理将文件加载到Python Dictionary类型:

 import json
with open("filename.json") as f:
data = json.load(f)

此时,data是一个Python字典,其中Infinity值作为float类型加载。

接下来,可以DataFrame使用字典创建一个pandas :

 df = pd.DataFrame(json.loads(x))

pandas会将Infinity值加载为numpy.float64类型

此时,如果想将数字Infinity转换为na您,请执行以下操作:

import numpy as np
df = df.replace(np.inf, np.nan)
132.3500
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子