设定
df = pd.Dataframe(dict( pres=[ {'amount': 12, 'pre': 'a'}, {'amount': 19, 'pre': 'x'}, {'amount': 37, 'pre': 'm'}, np.nan, np.nan, np.nan, ]))df pres0 {'amount': 12, 'pre': 'a'}1 {'amount': 19, 'pre': 'x'}2 {'amount': 37, 'pre': 'm'}3 NaN4 NaN5 NaNapply
与 pd.Series
确保
dropna先
df.pres.dropna().apply(pd.Series) amount pre0 12 a1 19 x2 37 m
df.drop('pres', 1).assign(**df.pres.dropna().apply(pd.Series)) amount pre0 12.0 a1 19.0 x2 37.0 m3 NaN NaN4 NaN NaN5 NaN NaNtolist
和 from_records
相同的想法,但跳过
apply
pd.Dataframe.from_records(df.pres.dropna().tolist()) amount pre0 12 a1 19 x2 37 m
df.drop('pres', 1).assign(**pd.Dataframe.from_records(df.pres.dropna().tolist())) amount pre0 12.0 a1 19.0 x2 37.0 m3 NaN NaN4 NaN NaN5 NaN NaN


