如何将Pandas列转换为数组并进行转置?

时间:2018-03-28 23:09:02

标签: python arrays pandas numpy transpose

我有一个名为' training_set'的Pandas数据帧。类似于下面的屏幕截图:

enter image description here

我尝试打开标签'列到数组并转置它。我尝试了Y_train=np.asarray(training_set['label']),但我得到的是一个水平数组,类似于下面的屏幕截图,这不是我想要的。

enter image description here

我希望数组垂直显示,就像下面的屏幕截图一样(屏幕截图每行有2个变量。我想要的输出应该只包含1个变量,'标签',每行。)

enter image description here

非常感谢任何建议或帮助!

3 个答案:

答案 0 :(得分:7)

v0.24更新

使用DataFrame.to_numpy(),这是提取numpy数组的新方法:

training_set[['label']].to_numpy()

旧答案

将您的列裁剪为单个圆柱DataFrame(使用[[...]]),而不是Series

Y_train = np.asarray(training_set[['label']])

或者,

Y_train = training_set[['label']].values

答案 1 :(得分:2)

另一种方法是重塑数组以塑造(-1,1),这意味着“推断行数,强制为1列”:

Y_train = np.array(training_set['label']).reshape(-1,1)

答案 2 :(得分:2)

一种方式:

Y_train = training_set['label'].values[:, None]