我有以下数据框:
import pandas as pd
import numpy as np
df = pd.DataFrame([{'a': [1,3,2]},{'a': [7,6,5]},{'a': [9,8,8]}])
df
df['a'].to_numpy()
df['a'].to_numpy()
=> array([list([1, 3, 2]), list([7, 6, 5]), list([9, 8, 8])], dtype=object)
如何在不编写for循环的情况下得到形状为(3,3)
的numpy数组?
答案 0 :(得分:3)
首先创建嵌套列表,然后转换为数组,仅需要所有长度相同的列表:
arr = np.array(df.a.tolist())
print (arr)
[[1 3 2]
[7 6 5]
[9 8 8]]
答案 1 :(得分:2)
如果长度始终相同
pd.DataFrame(df.a.tolist()).values
array([[1, 3, 2],
[7, 6, 5],
[9, 8, 8]])