在Pandas数据框中将列表转换为NumPy数组

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

它返回一个列表的数组,与上面的不同:

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

我们如何解决这个问题?
1个回答

2

如果可能始终创建相同长度的列表,请创建嵌套列表,然后将其转换为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]]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接