首页 > 解决方案 > 将一系列数组转换为单个列表

问题描述

我需要将数组中包含数组的系列转换为列表。这是系列:

    0
0   [[136.26198653744652]]
1   [[595.1701354429704]]
2   [[106.31607570796812]]
3   [[579.6333400908089]]
4   [[402.1731384585597]]
5   [[380.381375557186]]
type(b1)
Out[130]: pandas.core.series.Series

b1[1]
Out[131]: array([[595.1701354429704]], dtype=object) 

我尝试过 tolist()、.values 或 to_numpy() 等。除了以下内容外,没有任何效果

b1.explode().explode().tolist()

这就是我得到的。[136.26198653744652、595.1701354429704、106.31607570796812、579.6333400908089、402.1731384585597、380.381375557186]

据我了解,explode 会进行拆箱/取消列表之类的操作。我在这里寻找一些更好的解决方案,它有助于更​​改系列中每个元素的类型并产生 b1.explode().explode().tolist() 的结果。

标签: pythonpandas

解决方案


在 中使用 2 次展平列表Series

L = [z for x in b1 for y in x for z in y]
print (L)
[136.26198653744652, 595.1701354429704, 106.31607570796812,
 579.6333400908089, 402.1731384585597, 380.381375557186]

推荐阅读