我们有一个数据框,其中一列的元素是列表(讨论不是关于是否应该这样做)。一个简单的例子如下:
df = pd.DataFrame([[12,[123,234,234]], [14,[124,25,235]], [16,[1267,267,2345]]], columns = ['A', 'B'])
获取:
此处的目标是将列 B 转换为numpy数组,如下所示:
如果我要求熊猫将列转换为数组:
df['B'].values
它返回一个列表数组,与上面的列表不同:
array([list([123, 234, 234]), list([124, 25, 235]),
list([1267, 267, 2345])], dtype=object)
我们如何解决问题?
答案 0 :(得分:1)
如果列表的长度始终可以相同,则创建嵌套列表,然后转换为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]]