Используйте DataFrame.stack
:
new_df=df[['word','PredictedFeature']].stack().to_frame().T
new_df.columns=new_df.columns.droplevel(0)
print(new_df)
word PredictedFeature word PredictedFeature word PredictedFeature word \
0 Mark 2000 Bob 2000 AL 2200 NS
PredictedFeature word PredictedFeature word PredictedFeature word \
0 2200 GK 2200 sandy 2100 Rohan
PredictedFeature word PredictedFeature
0 2100 DV 2100
, но если вы хотите сохранить остальную информацию, лучше использовать pivot_table
new_df=df.pivot_table(columns=['word','PredictedFeature'],index='Document_ID',values='OFFSET',fill_value=0)
print(new_df)
word AL Bob DV GK Mark NS Rohan sandy
PredictedFeature 2200 2000 2100 2200 2000 2200 2100 2100
Document_ID
0 16 8 0 30 0 23 0 0
1 0 0 7 0 0 0 5 0
чтобы сохранить его вам нужно DataFrame.to_csv
:
new_df.to_csv('mycsv.csv')
если это мультииндекс, вам нужно:
new_df.to_csv('mycsv.csv',index_label=['word','PredictedFeature'])
чтобы прочитать pd.read_csv
:
new_read_csv=pd.read_csv('mycsv.csv')