Но вы также можете посмотреть в совершенно другой подход, прослушивая события файловой системы .
IIUC
df=df.melt(['id', 'technology']).assign(unit='').sort_values(['id','technology']) df.id=np.arange(len(df))+1