来自字典的Pandas DataFrame与列表

Con*_*way 13 python pandas

我有一个API,它将一行数据作为Python字典返回.大多数键具有单个值,但是一些键具有列表的值(甚至列表列表或列表列表).

当我将字典扔到pd.DataFrame中以尝试将其转换为pandas DataFrame时,它会抛出"数组必须长度相同"的错误.这是因为它无法处理具有多个值的键(即具有列表值的键).

如何让大熊猫将列表视为"单一值"?

作为一个假设的例子:

data = { 'building': 'White House', 'DC?': True, 'occupants': ['Barack', 'Michelle', 'Sasha', 'Malia'] }
Run Code Online (Sandbox Code Playgroud)

我想把它变成像这样的DataFrame:

ix   building         DC?      occupants
0    'White House'    True     ['Barack', 'Michelle', 'Sasha', 'Malia']
Run Code Online (Sandbox Code Playgroud)

And*_*den 15

如果传递列表(行),则此方法有效:

In [11]: pd.DataFrame(data)
Out[11]:
    DC?     building occupants
0  True  White House    Barack
1  True  White House  Michelle
2  True  White House     Sasha
3  True  White House     Malia

In [12]: pd.DataFrame([data])
Out[12]:
    DC?     building                         occupants
0  True  White House  [Barack, Michelle, Sasha, Malia]
Run Code Online (Sandbox Code Playgroud)


Chi*_*chi 5

这最终证明是非常微不足道的

data = { 'building': 'White House', 'DC?': True, 'occupants': ['Barack', 'Michelle', 'Sasha', 'Malia'] }
df = pandas.DataFrame([data])
print df
Run Code Online (Sandbox Code Playgroud)

结果是:

    DC?     building                         occupants
0  True  White House  [Barack, Michelle, Sasha, Malia]
Run Code Online (Sandbox Code Playgroud)