我有如下的pandas数据框架结构。有两列:id
和info
(object)
id info
0 14050000893760073 [{'route_id': '1', 'stop_id': '1'}, {'route_id': '2', 'stop_id': '2'}]
我想将此格式转换为以下格式:
id route_id stop_id
0 14050000893760073 1 1
1 14050000893760073 2 2
任何想法?提前感谢!
df2 = df.explode('info', ignore_index=True)
df2
id info
0 14050000893760073 {'route_id': '1', 'stop_id': '1'}
1 14050000893760073 {'route_id': '2', 'stop_id': '2'}
info_df = df2["info"].apply(pd.Series)
info_df
route_id stop_id
0 1 1
1 2 2
result = pd.concat([df2, info_df], axis=1).drop('info', axis=1)
result
id route_id stop_id
0 14050000893760073 1 1
1 14050000893760073 2 2
首先,打开info
列中的列表。然后,从该列创建一个数据系列。最后,将info_df
和数据帧连接起来,以得到最终结果。