为什么将字典传递给 pd.DataFrame() 会生成空数据帧?

问题描述 投票:0回答:1

我有一个这样的字典:

{'id': '123', 'sales_attributes': [], 'seller_sku': '123'}

我想生成一个数据帧来存储它。当我使用 pd.DataFrame() 时,它会生成一个空数据帧

当我使用 pd.json_normalize() 时,我得到了想要的结果

为什么?有人可以帮助我吗?

python pandas
1个回答
0
投票

当您将字典传递给 DataFrame 构造函数时,它期望作为项目列出,所有列表具有相同的长度:

dic = {'id': ['123', '456'], 'seller_sku': ['123', '456']}

df = pd.DataFrame(dic)

    id seller_sku
0  123        123
1  456        456

为了方便起见,您还可以传递文字,它们将扩展到所有行:

dic = {'id': ['123', '456'], 'seller_sku': ['123', '456'], 'other': 'X'}

df = pd.DataFrame(dic)

    id seller_sku other
0  123        123     X
1  456        456     X

在您的情况下,有一个属性定义行数 (0) 和 2 个文字,因此输出是一个空的 DataFrame:

dic = {'id': '123', 'sales_attributes': [], 'seller_sku': '123'}

df = pd.DataFrame(dic)

Empty DataFrame
Columns: [id, sales_attributes, seller_sku]
Index: []
© www.soinside.com 2019 - 2024. All rights reserved.