Python Dataframe Column Of Lists Of Dicts Into Columns With Single Elements
I tried to ask this question in a different format, and I got answers that addressed a specific part of the question but not the whole thing. In an effort not to confuse things I'm
Solution 1:
Try:
# if the lists_of_stuff are strings, apply literal_eval#from ast import literal_eval#df["lists_of_stuff"] = df["lists_of_stuff"].apply(literal_eval)
df = df.explode("lists_of_stuff")
df = pd.concat([df, df.pop("lists_of_stuff").apply(pd.Series)], axis=1)
print(df)
Prints:
other1 other2 a b c d e f
0 Susie 123 sam 2.0 NaN NaN NaN NaN
0 Susie 123 diana NaN grape 5.0 NaN NaN
0 Susie 123 jody NaN 7 NaN foo 9.0
1 Rachel 456 joe 2.0 NaN NaN NaN NaN
1 Rachel 456 steve NaN pizza NaN NaN NaN
1 Rachel 456 alex NaN 7 NaN doh NaN
EDIT: To reindex columns:
#... code as above
df = df.reset_index(drop=True).reindex(
[*df.columns[:1]] + [*df.columns[2:]] + [*df.columns[1:2]], axis=1
)
print(df)
Prints:
other1 a b c d e f other2
0 Susie sam 2.0 NaN NaN NaN NaN 123
1 Susie diana NaN grape 5.0 NaN NaN 123
2 Susie jody NaN 7 NaN foo 9.0 123
3 Rachel joe 2.0 NaN NaN NaN NaN 456
4 Rachel steve NaN pizza NaN NaN NaN 456
5 Rachel alex NaN 7 NaN doh NaN 456
Post a Comment for "Python Dataframe Column Of Lists Of Dicts Into Columns With Single Elements"