我们有一个数据框,其中一列的元素是列表(讨论不是关于是否应该这样做)。一个简单的例子如下:
df = pd.DataFrame([[12,[123,234,234]], [14,[124,25,235]], [16,[1267,267,2345]]], columns = ['A', 'B'])
获得:
此处的目标是将列 B 转换为一个 numpy 数组,如下所示:
如果我要求 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/