我有一个csv文件,格式如下:
id data
1 [{'name':'Day 1', 'data':[12,13]},{'name':'Day 2', 'data':[34,45]}]
我希望它采用以下格式:
id name index data
1 Day 1 0 12
1 Day 1 1 13
1 Day 2 0 34
1 Day 2 1 45
我已尝试在数据列上执行pd.apply(Series),但它只将字典分隔为各自的列。关于如何做到这一点的任何想法?
谢谢!
答案 0 :(得分:2)
我的回答是冗余之王,使用apply(pd.Series)
,几次
(df.set_index('id').data
.apply(pd.Series)
.stack()
.apply(pd.Series)
.set_index('name',append=True).data
.apply(pd.Series)
.stack()
.reset_index()
.drop('level_1',axis=1)
)
id name level_3 0
0 1 Day 1 0 12
1 1 Day 1 1 13
2 1 Day 2 0 34
3 1 Day 2 1 45