假设我有以下数组:
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
有什么想法吗?
答案 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(' ')