JSON到Dataframe不知道JSON是否拥有datafram的所有列

2024-04-28 07:18:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个研究项目,并试图从SEC-edgarapi中获取数以千计的公司季度业绩。你知道吗

每个结果都是一个字典列表,其结构如下:

[{'field': 'othercurrentliabilities', 'value': 6886000000.0},
 {'field': 'otherliabilities', 'value': 13700000000.0},
 {'field': 'propertyplantequipmentnet', 'value': 15789000000.0}...] 

我希望每个结果都是一个数据帧的一行。问题是,由于数据可用,每个结果可能没有相同的字段。我想检查dataframe的列(字段)是否存在于其中一个results字段中,如果是,则将结果值添加到行中。如果没有,我想添加一个np.NaN。我该怎么做呢?你知道吗


Tags: 数据项目field列表字典value公司sec
2条回答

列一张清单df.result.rows行[x] [“值”] 就像下面一样

s=[]

对于范围内的x(df.result.totalrows行[0]): s=s+[df.result.rows行[x] [“值”]] 打印(x)

df1型=pd.数据帧([{d[“field”]:d[“value”]表示第d行}表示第s行]

df1型

会给你结果的。你知道吗

列表/听写理解应该在这里起作用:

In [11]: s
Out[11]:
[[{'field': 'othercurrentliabilities', 'value': 6886000000.0},
  {'field': 'otherliabilities', 'value': 13700000000.0},
  {'field': 'propertyplantequipmentnet', 'value': 15789000000.0}],
 [{'field': 'othercurrentliabilities', 'value': 6886000000.0}]]

In [12]: pd.DataFrame([{d["field"]: d["value"] for d in row} for row in s])
Out[12]:
   othercurrentliabilities  otherliabilities  propertyplantequipmentnet
0             6.886000e+09      1.370000e+10               1.578900e+10
1             6.886000e+09               NaN                        NaN

相关问题 更多 >