gpt4 book ai didi

python - 通过 pandas 从 JSON 加载文本值

转载 作者:太空宇宙 更新时间:2023-11-03 21:21:05 24 4
gpt4 key购买 nike

我正在尝试读取这个文件:

{"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,如果那里还有其他数值,那么它们会保留在那里。

最佳答案

最简单的方法可能是首先使用 json.load() 从标准库读取文件,然后将其转换为数据帧:

import json
import pandas as pd

fname = 'yourfile.json'

with open(fname, 'r') as f:
dat = json.load(f)

dat_df = pd.DataFrame(dat)
dat_df.reset_index(inplace=True)

## >>> print(dat_df)
## index data
## 0 1547700140.05 inf
## 1 1547700225.3 inf
## 2 1547700227.55 inf
## 3 1547700229.8099997 inf
## 4 1547700231.9899995 inf

然后您可以将 inf 替换为 NaN,如下所示(例如):

import numpy as np
dat_df.replace(np.inf, np.nan, inplace=True)

## >>> print(dat_df)
## index data
## 0 1547700140.05 NaN
## 1 1547700225.3 NaN
## 2 1547700227.55 NaN
## 3 1547700229.8099997 NaN
## 4 1547700231.9899995 NaN

关于python - 通过 pandas 从 JSON 加载文本值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54246386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com