python - 将列表转换为 pandas 数据框中的 numpy 数组

标签 python pandas numpy

我们有一个数据框,其中一列的元素是列表(讨论不是关于是否应该这样做)。一个简单的例子如下:

df = pd.DataFrame([[12,[123,234,234]], [14,[124,25,235]], [16,[1267,267,2345]]], columns = ['A', 'B'])

获得:

enter image description here

此处的目标是将列 B 转换为一个 numpy 数组,如下所示:

enter image description here .

如果我要求 pandas 将列转换为数组:

df['B'].values

返回的是list数组,和上面的不一样:

array([list([123, 234, 234]), list([124, 25, 235]),
   list([1267, 267, 2345])], dtype=object)

我们如何解决这个问题?

最佳答案

如果列表的长度始终相同,则创建嵌套列表,然后转换为 np.array:

arr = np.array(df['B'].values.tolist())
#alternative
#arr = np.array(df['B'].tolist())
print (arr)
[[ 123  234  234]
 [ 124   25  235]
 [1267  267 2345]]

关于python - 将列表转换为 pandas 数据框中的 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52442670/

相关文章:

python - Django 表单向导处理

python - Numpy 中的克罗内克三角洲

python - 将值添加到 numpy 数组中的部分

python - 可以用python写一个IM服务器吗? (能够处理繁重的连接)

python - groupby 在搜索 View 中的多对多关系字段上?

python - GroupBy 语句不像字符串那样分组

python,如何知道一年中的周数,周六为一周的第一天

python - 类型错误 : unsupported format string passed to Series. __format__

python - np.mean 对于跨多列具有特定值的行

python - 如何用自定义 __len__() 过程替换类 @property 的 len(..) 返回值?