Predicted values all form a row instead of a column

Viewed 56

I have a dataframe like this called test based on feature selection:

    Spin  Seek  Power
0   92     50    99
1   88     20    90
2   56     100   90
3   87     20    100
4   67     30    45

Original data frame called hdd_new was like this:

  serial_number Spin  Seek  Power
0   W3015JSX      92     50    99
1   ZA10Q2F7      88     20    90
2   9VYC10JY      56     100   90
3   S301LJ5G      87     20    100
4   Z305D4X6      67     30    45

After building my model, I decided to test it on a new data that comes in .csv file.

df_test = hdd_new['serial_number']
y_pred = model.predict(test)
df_test['failure'] = y_pred

df_test[['serial_number','failure']].to_csv('predictions.csv', index=False)

df_test = pd.DataFrame(df_test)
df_test

Output:

         serial_number
0        W3015JSX
1        ZA10Q2F7
2        9VYC10JY
3        S301LJ5G
4        Z305D4X6
failure  [0,1,0,0,1]

What I want to achieve:

          serial_number   failure
    0        W3015JSX       0
    1        ZA10Q2F7       1
    2        9VYC10JY       0
    3        S301LJ5G       0
    4        Z305D4X6       1

I don't know what I am doing wrong. Please help.

1 Answers

Just looking at what you've shared and without knowing the details of your model, you could perhaps re-organise your code like this?

df_test = pd.DataFrame()
df_test['serial_number'] = hdd_new['serial_number']
y_pred = model.predict(test)
df_test['failure'] = y_pred

df_test[['serial_number','failure']].to_csv('predictions.csv', index=False)

Note: Unless df_test contains other columns which are not included in this scenario, the last line can simply read:

df_test.to_csv('predictions.csv', index=False)
Related