Python 在数据帧内复制数据帧

Python 在数据帧内复制数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我正在尝试训练一个多对象分类器。为此,我将我的数据集信息存储到熊猫数据框中,该数据框当前如下所示: |IMAGE_PATHS---|LABELS------------------------------------------| |path_to_image1|[[c11 x11 y11 w11 h11],[c12 x12 y12 w12 h12]...]| |path_to_image2|[[c21 x21 y21 w21 h21],[c22 x22 y22 w22 h22]...]|

我正在尝试训练一个多对象分类器。为此,我将我的数据集信息存储到熊猫数据框中,该数据框当前如下所示:

|IMAGE_PATHS---|LABELS------------------------------------------|
|path_to_image1|[[c11 x11 y11 w11 h11],[c12 x12 y12 w12 h12]...]| 
|path_to_image2|[[c21 x21 y21 w21 h21],[c22 x22 y22 w22 h22]...]| 
|...
但是用这种方式玩它并不容易。例如,如果我想看到图像中标记的所有独角兽,我需要遍历每行中的所有元素并查找它们。如果这些标签是数据帧,我可以很容易地将它们过滤为
df[df[“label”]==“unicorn”]


那么,有没有一种方法可以轻松地在这个数据框内创建一个数据框或其他一些很酷的技巧呢?

如果您的标签只是嵌套列表,您可以这样做:

df[df['LABELS'].apply(lambda x: 'unicorn' in [item for sublist in x for item in sublist])]

这会在lambda函数中将子列表展平为一个列表,然后检查它是否包含“unicorn”,屏蔽df,最后返回过滤后的df

数据帧并不真正用于存储复杂对象。就像你已经意识到的那样,你失去了很多固有的功能,即使是像
列表这样简单的东西。将数据帧存储在数据帧中并不能真正解决这一问题。在这种情况下,你可能应该考虑修改你的数据,也许是长格式,使用<代码>多索引< /代码>。我将尝试<代码>多索引< /代码>,谢谢。