如何将包含 numpy 数组的 pandas 列转换为 nd 数组
How to convert a pandas column that contains numpy arrays to nd array
我有以下数据框:
df = pd.DataFrame(
{'a':[np.array([1,2,3]),np.array([4,5,6])]
}
)
我想从 a
列中提取如下所示的 numpy 数组:
array([[1., 2., 3.],
[4., 5., 6.]])
我可以像下面那样做:
for i, row in df.iterrows():
t_arr[i,:] = row["a"]
但我正在寻找没有 for 循环的解决方案。 .values
和 to_numpy()
没有 return 想要的结果
使用np.stack
创建二维numpy数组。
来自 a
列的系列对象:
np.stack(df['a'].values)
或者从整个DataFrame:
np.stack(df.values.flatten())
编辑:您甚至不需要调用 .values
。您可以在系列对象上调用 np.stack
。
你可以这样做:
np.vstack(df['a'])
哪个returns:
array([[1, 2, 3],
[4, 5, 6]])
我有以下数据框:
df = pd.DataFrame(
{'a':[np.array([1,2,3]),np.array([4,5,6])]
}
)
我想从 a
列中提取如下所示的 numpy 数组:
array([[1., 2., 3.],
[4., 5., 6.]])
我可以像下面那样做:
for i, row in df.iterrows():
t_arr[i,:] = row["a"]
但我正在寻找没有 for 循环的解决方案。 .values
和 to_numpy()
没有 return 想要的结果
使用np.stack
创建二维numpy数组。
来自 a
列的系列对象:
np.stack(df['a'].values)
或者从整个DataFrame:
np.stack(df.values.flatten())
编辑:您甚至不需要调用 .values
。您可以在系列对象上调用 np.stack
。
你可以这样做:
np.vstack(df['a'])
哪个returns:
array([[1, 2, 3],
[4, 5, 6]])