嗨,我按照 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)
我应该在哪里修改我的代码?谢谢
答案 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())