consider df
df = pd.DataFrame([
['a', 'b', 'c', 'd', dict(F='y', G='v')],
['a', 'b', 'c', 'd', dict(F='y', G='v')],
], columns=list('ABCDE'))
df
A B C D E
0 a b c d {'F': 'y', 'G': 'v'}
1 a b c d {'F': 'y', 'G': 'v'}
Option 1
Use pd.Series.apply
, assign new columns in place
df.E.apply(pd.Series)
F G
0 y v
1 y v
Assign it like this
df[['F', 'G']] = df.E.apply(pd.Series)
df.drop('E', axis=1)
A B C D F G
0 a b c d y v
1 a b c d y v
Option 2
Pipeline the whole thing using the pd.DataFrame.assign
method
df.drop('E', 1).assign(**pd.DataFrame(df.E.values.tolist()))
A B C D F G
0 a b c d y v
1 a b c d y v
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…