如何将数据框中的字典拆分为多列

How to split dict in dataframe to many columns

我正在使用数据框。如何将字典列表拆分为多列?

这适用于初级数据处理器。过去,我尝试过很多方法。

import pandas as pd
l = [{'a':1,'b':2},{'a':3,'b':4}]
data = [{'key1':'x','key2':'y','value':l}]
df = pd.DataFrame(data)
data1 = {'key1':['x','x'],'key2':['y','y'],'a':[1,3],'b':[2,4]}
df1 = pd.DataFrame(data1)

df1 正是我所需要的

理解

d1 = df.drop('value', axis=1)
co = d1.columns
d2 = df.value

pd.DataFrame([
    {**dict(zip(co, tup)), **d}
    for tup, D in zip(zip(*map(d1.get, d1)), d2)
    for d in D
])

   a  b key1 key2
0  1  2    x    y
1  3  4    x    y

爆炸

post on explode
这有点不同但很接近

idx = df.index.repeat(df.value.str.len())
val = np.concatenate(df.value).tolist()
d0 = pd.DataFrame(val)
df.drop('value', axis=1).loc[idx].reset_index(drop=True).join(d0)

   a  b key1 key2
0  1  2    x    y
1  3  4    x    y