mux = pd.MultiIndex.from_product([['Qty', 'Sales'], np.arange(1, 13)])
print(df.set_index(['Part_ID', 'Year', 'Month']).unstack(fill_value=0).reindex(
    columns=mux, fill_value=0).stack().rename_axis(['Part_ID', 'Year', 'Month']
    ).reset_index())
Insert rows and add missing data