【发布时间】:2016-02-03 22:02:50
【问题描述】:
我有一个 API,它以 Python 字典的形式返回单行数据。大多数键都有一个值,但有些键的值是列表(甚至是列表列表或字典列表)。
当我将字典放入 pd.DataFrame 以尝试将其转换为 pandas DataFrame 时,它会引发“数组必须是相同长度”的错误。这是因为它无法处理具有多个值的键(即具有列表值的键)。
如何让 pandas 将列表视为“单值”?
作为一个假设的例子:
data = { 'building': 'White House', 'DC?': True,
'occupants': ['Barack', 'Michelle', 'Sasha', 'Malia'] }
我想把它变成这样的DataFrame:
ix building DC? occupants
0 'White House' True ['Barack', 'Michelle', 'Sasha', 'Malia']
【问题讨论】:
-
你事先知道传入的数据的结构吗?
-
一般来说,是的。在假设的例子中,“building”总是一个字符串,而“DC?”将始终是一个布尔值。但是“住户”列表的长度可能会根据所查询的建筑物而变化。这能回答你的问题吗?
-
正确,所以我在想,先创建一个空白数据框,然后继续向其中添加行。但是,请注意,正如 Andy 指出的那样,这可能效率低下