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

时间:2019-07-17 03:44:46

标签: pandas data-processing

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

这是针对初级数据处理器的。过去,我尝试过很多方法。

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是我所需要的。

1 个答案:

答案 0 :(得分:2)

理解力

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