熊猫-从字典和数组创建XLSX

时间:2018-09-04 16:42:31

标签: python python-3.x pandas

假设我有以下数组:

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

我正在尝试使用熊猫创建电子表格,一旦以动态方式创建数组,我就面临着将存在于字典中的数组内容也合并为列的挑战。

当前方法:

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

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

使用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

答案 1 :(得分:1)

您不需要任何循环

只需创建带有字典列表的df

 df=pd.DataFrame(x)
 #join the list elements with ' '
 df['array']=df['array'].str.join(' ')