将系列转换为二维数组

时间:2021-01-20 01:03:55

标签: python pandas

嗨,我按照 this post 将系列转换为二维数组,但它不起作用。

数据框

d = {'col1': [1,1,1], 'col2': [2,2,2]}
df = pd.DataFrame(data=d)

我的代码

np.array(df['col1'].values.tolist())

它返回一个形状为(3,)

的一维数组

array([1, 1, 1])

我正在寻找形状为 (3,1)

的数组

我应该在哪里修改我的代码?谢谢

2 个答案:

答案 0 :(得分:2)

  • df['col1'] 是一个系列对象
  • df[['col1']] 是单列数据框

当使用 .to_numpy() 时,传递一个系列对象将返回一个一维数组。但是,当传递数据帧时,它将返回一个二维数组,其中保留了列和行结构(在这种情况下为单列和 3 行)

试试用这个。 -

df[['col1']].to_numpy()
array([[1],
       [1],
       [1]])

#shape = (3,1)

请参阅documentation

答案 1 :(得分:0)

您可以使用 .to_numpy() 执行以下操作。作为参考,您可以访问here

import pandas as pd
import numpy as np

d = {'col1': [1,1,1,], 'col2': [2,2,2,]}
df = pd.DataFrame(data=d)

print(df.to_numpy())