首页 > 解决方案 > Pandas - 从字典和数组创建 xlsx

问题描述

假设我有以下数组:

x = [
{
    "id": "1",
    "array": ["2", "3", "4"]
 },
{
    "id": "2",
    "array": ["5"]
 },
{
    "id": "3",
    "array": ["6", "7", "8"]
}
]

我正在尝试使用 pandas 创建一个电子表格,并且一旦以动态方式创建了数组,我就面临着将位于 dict 中的数组的内容合并为列的一部分的挑战。

目前的做法:

import pandas as pd

df = pd.DataFrame({'id': []})

for item in x:
    df = df.append(item, ignore_index=True)

df.to_excel('test.xlsx', 's')

电流输出:

    id  array
0   1   ['2', '3', '4']
1   2   ['5']
2   3   ['6', '7', '8']

预期输出:

    id  array
0   1   2   3   4
1   2   5
2   3   6   7   8

有任何想法吗?

标签: pythonpython-3.xpandas

解决方案


使用join

df.array=df.array.apply(' '.join)
df
Out[211]: 
  id  array
0  1  2 3 4
1  2      5
2  3  6 7 8

更新

pd.concat([df,pd.DataFrame(df.array.tolist())],1)
Out[249]: 
  id      array  0     1     2
0  1  [2, 3, 4]  2     3     4
1  2        [5]  5  None  None
2  3  [6, 7, 8]  6     7     8

推荐阅读