如何读取保存在列表中的每个数组,列表又是在pandas Dataframe 的列中

x6h2sr28  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(94)

所以,我有边界框“xy xy”保存在这个特定的列(bounding_boxes)的 Dataframe ,现在我试图提取所有三个数组从第一行,但不怎么!
我的输入看起来像这样:

"[array([     1178.4,      1.6609,      1532.1,      935.91], dtype=float32), array([     761.56,      386.14,      953.42,      936.99], dtype=float32), array([      458.4,      544.93,      1014.9,      943.33], dtype=float32)]"
output:
 a = [     1178.4,      1.6609,      1532.1,      935.91]
 b = [     761.56,      386.14,      953.42,      936.99]
 c = [      458.4,      544.93,      1014.9,      943.33]

输入文件如下所示:

mrphzbgm

mrphzbgm1#

只要每个单元格具有相同数量的元素,您就可以创建一个简单的自定义字符串解析器。

s = "one_particular_cell_string"

s = [i for i in s.replace("[", " ").replace("]", " ").replace(",", " ").split(" ") if len(i) > 0]

ls = []
for i in s:
    try:
        ls.append(float(i))
    except ValueError:
        pass

ls = np.reshape(ls, (3, 4))

你也可以使用eval(),但通常你不应该这样做,除非你绝对信任你的输入。

from numpy import float32, array
x = eval(s) # gives:  list[np.array]

相关问题