繁体   English   中英

Pandas DataFrame - KeyError:“日期”

[英]Pandas DataFrame - KeyError: 'date'

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

只要在 Pandas 中调用 JSON 文件的特定对象,我就会收到诸如 KeyError 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'])

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

通过执行df = pd.DataFrame().fillna("")您正在用新的(空的)dataframe 覆盖以前的 df。 你可以这样应用它: df = df.fillna("")

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("")创建一个新的空 dataframe 并用空填充“NaN”。

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

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

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

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'])

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM