12

I have a Pandas dataframe called 'training_set' that resembles the screenshot below:

enter image description here

I try to turn the 'label' column into array and transpose it. I tried doing Y_train=np.asarray(training_set['label']) but what I got is a horizontal array that resembles the screenshot below, which is not what I want.

enter image description here

I want the array to display vertically just like the screenshot below (The screenshot has 2 variables per row. My desired output should only contain 1 variable, the 'label', per row.)

enter image description here

Any suggestion or help would be greatly appreciated!

Community
  • 1
  • 1
Stanleyrr
  • 858
  • 3
  • 12
  • 31

3 Answers3

25

pandas >= 0.24

Use DataFrame.to_numpy(), the new Right Way to extract a numpy array:

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

pandas < 0.24

Slice out your column as a single columned DataFrame (using [[...]]), not as a Series:

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

Or,

Y_train = training_set[['label']].values
cs95
  • 379,657
  • 97
  • 704
  • 746
3

Another way would be to reshape your array to shape (-1,1), which means "infer number of rows, force to 1 column":

Y_train = np.array(training_set['label']).reshape(-1,1)
sacuL
  • 49,704
  • 8
  • 81
  • 106
3

One way:

Y_train = training_set['label'].values[:, None]
jpp
  • 159,742
  • 34
  • 281
  • 339