Python 获取错误';没有要连接的对象';在尝试创建数据帧时?
我正在从API中提取值,并尝试创建一个数据帧。当我没有从API返回任何数据时,即如果API返回零值,我的代码就会失败。当API返回值时,下面的代码可以完美地工作 我希望创建一个具有空值的数据帧结构,即使API返回零值。如何做到这一点 我的代码Python 获取错误';没有要连接的对象';在尝试创建数据帧时?,python,pandas,dataframe,Python,Pandas,Dataframe,我正在从API中提取值,并尝试创建一个数据帧。当我没有从API返回任何数据时,即如果API返回零值,我的代码就会失败。当API返回值时,下面的代码可以完美地工作 我希望创建一个具有空值的数据帧结构,即使API返回零值。如何做到这一点 我的代码 data = json.loads(response.text) if 'items' in data: if len(data['items']) > 0: df = pd.json_normaliz
data = json.loads(response.text)
if 'items' in data:
if len(data['items']) > 0:
df = pd.json_normalize(data, 'items', 'totalItems')
#NaN in column, so failed - replace NaN to empty list
f = lambda x: x if isinstance(x, list) else []
df['relatedEntities'] = df['relatedEntities'].apply(f)
df['raw.identifiers'] = df['raw.identifiers'].apply(f)
df['raw.relationships'] = df['raw.relationships'].apply(f)
df1 = pd.concat([pd.DataFrame(x) for x in df.pop('relatedEntities')], keys=df.index).add_prefix('relatedEntities.')
df2 = pd.concat([pd.DataFrame(x) for x in df.pop('raw.identifiers')], keys=df.index).add_prefix('raw.identifiers.')
df3 = pd.concat([pd.DataFrame(x) for x in df.pop('raw.relationships')], keys=df.index).add_prefix('raw.relationships.'
df4 = df.join(df1.join(df2).join(df3).reset_index(level=1, drop=True))
dfs.append(df4)
df = pd.concat(dfs, ignore_index=True)
API返回零值时出现的错误
ValueError Traceback (most recent call last)
<ipython-input-31-ee7500e589f7> in <module>
36 dfs.append(df4)
37
---> 38 df = pd.concat(dfs, ignore_index=True)
330 if len(objs) == 0:
--> 331 raise ValueError("No objects to concatenate")
332
333 if keys is None:
ValueError: No objects to concatenate
ValueError回溯(最近一次调用)
在里面
36 dfs.追加(df4)
37
--->38 df=pd.concat(dfs,忽略索引=True)
330如果len(objs)==0:
-->331 raise VALUERROR(“没有要连接的对象”)
332
333如果密钥为“无”:
ValueError:没有要连接的对象
一个想法是测试数据帧列表是否为空,如果空列表返回空数据帧:
cols = ['start','end','source','title','body','severity','category']
df = pd.concat(dfs, ignore_index=True) if len(dfs) > 0 else pd.DataFrame(columns=cols)
我尝试了选项1。但是我还需要创建具有固定列名的空数据框
columns=['start'、'end'、'source'、'title'、'body'、'severity'、'category']
。应该做什么我开始在pandas 1.2.x上出现这个错误,而它在pandas 1.1.x上工作。您使用的是哪个版本?@rudolfbyker,我使用的是pandas 1.2 xSee