首页 > 解决方案 > 如何将熊猫列表行转换为 numpy 数组?

问题描述

我有一个包含两列的数据框:

name, [sizes]

例子

one, [1,2,3]
two, [4,5,6]

我想将值转换为数组以进行进一步处理。

x_data = list(set(df.name.values))
y_data = [df.query('name == @h').sizes.values  for h in x_data]

这将返回:

[array([list([1, 2, 3])], dtype=object), array([list([4,5,6])], dtype=object)]

有没有办法将其展平并将其作为简单的数组 [] 而不是数组 [列表 []]?

标签: pythonpandas

解决方案


使用tolist()

np.array(df['sizes'].tolist())

输出:

array([[1, 2, 3],
       [4, 5, 6]])

请注意,它仅适用于列中所有列表的大小相同的情况。对于不同的尺寸,我们会得到类似的东西:

array([list([1, 2, 3]), list([4, 5, 6, 7])], dtype=object)

推荐阅读