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)






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论