【发布时间】:2020-02-10 11:04:51
【问题描述】:
我有一个如下所示的 Pandas 数据框,带有一个索引和两列。 “Image_main”列包含一个 url 列表。
我想要做的是将“image_main”列列表中的每个项目分隔到同一数据框中的新列中。列表的长度在每一行中是不同的。例如,第 1 行的列表有 4 个 url,而第 3 行只有 2 个 url。
index image_main referenceID
0 ['https://x.com/1.jpg','https://x.com/2.jpg',... 3.297439e+10
1 ['https://y.com/1.jpg','https://y.com/2.jpg',... 4.000220e+12
2 ['https://z.com/1.jpg','https://z.com/2.jpg',... 4.000130e+12
3 ['https://v.com/1.jpg','https://v.com/2.jpg',... 3.296914e+10
4 ['https://a.com/1.jpg','https://a.com/2.jpg',... 4.000080e+12
到目前为止,我已经根据对以下问题的答案进行了以下尝试:Pandas: split column of lists of unequal length into multiple columns。但是,它似乎不起作用,因为我得到了与以前相同的结果
df['image_main'] = pd.DataFrame(df['image_main'].values.tolist()).add_prefix('code_')
print(df)
image_main referenceID
0 ['https://x.com/1.jpg','https://x.com/2.jpg',... 3.297439e+10
1 ['https://y.com/1.jpg','https://y.com/2.jpg',... 4.000220e+12
2 ['https://z.com/1.jpg','https://z.com/2.jpg',... 4.000130e+12
3 ['https://v.com/1.jpg','https://v.com/2.jpg',... 3.296914e+10
4 ['https://a.com/1.jpg','https://a.com/2.jpg',... 4.000080e+12
如何将 image_main 列中的每个项目拆分为同一数据框中的新单独列?
所需的结果类似于以下内容:
image_main referenceID. image_1. image 2 ....
0 ...,... 3.297439e+10. 'https://x.com/1.jpg' 'https://x.com/2.jpg'
1 ...,... 3.297439e+10. 'https://y.com/1.jpg' 'https://y.com/2.jpg'
2 ...,... 3.297439e+10. 'https://z.com/1.jpg' 'https://z.com/2.jpg'
3 ...,... 3.297439e+10. 'https://v.com/1.jpg' 'https://v.com/2.jpg'
4 ...,... 3.297439e+10. 'https://a.com/1.jpg' 'https://a.com/2.jpg'
【问题讨论】: