0

对于当前项目,我正在使用来自 JSON 文件的大型 Pandas DataFrame。

一旦在 Pandas 中调用 JSON 文件的特定对象,我就会收到诸如KeyError: 'date'for line之类的关键错误df['date'] = pd.to_datetime(df['date'])

我已经排除了标识符/对象措辞作为错误的可能来源。是否有任何智能调整可以使此代码正常工作?

JSON 文件具有以下结构:

[
{"stock_symbol": "AMG", "date": "2013-01-01", "txt_main": "ABC"}
]

相应的代码部分如下所示:

import string
import json
import pandas as pd

# Loading and normalising the input file
file = open("sp500.json", "r")
data = json.load(file)
df = pd.json_normalize(data)
df = pd.DataFrame().fillna("")

# Datetime conversion
df['date'] = pd.to_datetime(df['date'])
4

3 回答 3

2

查看 fillna function fillna function的文档示例。

通过这样做df = pd.DataFrame().fillna(""),您将使用新的(空)数据框覆盖您以前的 df 。你可以这样应用它:df = df.fillna("").

于 2020-07-14T06:40:34.143 回答
1

您正在使用df = pd.DataFrame().fillna("")它将创建一个新的数据框并填充一个没有值的值。

这里旧的 df 被空数据框替换,所以没有名为date的列。相反,您可以使用 来填充“na”值df.fillna("")

import string
import json
import pandas as pd

# Loading and normalising the input file
file = open("sp500.json", "r")
data = json.load(file)
df = pd.json_normalize(data)
df = df.fillna("")

# Datetime conversion
df['date'] = pd.to_datetime(df['date'])

谢谢

于 2020-07-14T06:39:08.023 回答
1
In [42]: import string
    ...: import json
    ...: import pandas as pd
    ...:
    ...: # Loading and normalising the input file
    ...: #file = open("sp500.json", "r")
    ...: #data = json.load(file)
    ...: df = pd.json_normalize(a)
    ...: #df = pd.DataFrame().fillna("")
    ...:
    ...: # Datetime conversion
    ...: df['date'] = pd.to_datetime(df['date'])

In [43]: df
Out[43]:
  stock_symbol       date txt_main
0          AMG 2013-01-01      ABC

df = pd.DataFrame().fillna("")创建一个新的空数据框并用空填充“NaN”。

因此,将该行更改为df = df.fillna("")

于 2020-07-14T06:25:59.683 回答