Data:
print (df)
      MN   DT   HR01  HR02  HR03  HR04  PRMEAN  PRSMAX  PRSMIN
2011    1    1    34    35    67    78      12     235     256
2011    1    2    12    56    78    56      23     256     267
2011    2    1    12     2    32    12      74     221     435
If check columns thre is no column Year (becuse index) and columns MN and DT have traling whitespaces:
print (df.columns)
Index(['MN ', 'DT ', 'HR01', 'HR02', 'HR03', 'HR04', 'PRMEAN', 'PRSMAX',
       'PRSMIN'],
      dtype='object')
Solution is remove them by str.strip, convert index to column and rename:
df.columns = df.columns.str.strip()
df = df.reset_index().rename(columns={'index':'Year'})
print (df)
   Year  MN  DT  HR01  HR02  HR03  HR04  PRMEAN  PRSMAX  PRSMIN
0  2011   1   1    34    35    67    78      12     235     256
1  2011   1   2    12    56    78    56      23     256     267
2  2011   2   1    12     2    32    12      74     221     435
print (df.columns)
Index(['Year', 'MN', 'DT', 'HR01', 'HR02', 'HR03', 'HR04', 'PRMEAN', 'PRSMAX',
       'PRSMIN'],
      dtype='object')
Then use melt with sort_values and remove variable column:
df1 = (df.melt(id_vars=['Year','MN','DT','PRMEAN','PRSMAX','PRSMIN'],value_name='HR')
         .sort_values('variable')
         .drop('variable', axis=1))
Last change ordering of columns:
df1 = df1[['Year','MN','DT','HR','PRMEAN','PRSMAX','PRSMIN']]
print (df1)
    Year  MN  DT  HR  PRMEAN  PRSMAX  PRSMIN
0   2011   1   1  34      12     235     256
3   2011   1   1  35      12     235     256
6   2011   1   1  67      12     235     256
9   2011   1   1  78      12     235     256
1   2011   1   2  12      23     256     267
4   2011   1   2  56      23     256     267
7   2011   1   2  78      23     256     267
10  2011   1   2  56      23     256     267
2   2011   2   1  12      74     221     435
5   2011   2   1   2      74     221     435
8   2011   2   1  32      74     221     435
11  2011   2   1  12      74     221     435
EDIT:
So there is column YEAR, so need:
df = pd.read_csv('Pres.csv')
df.columns = df.columns.str.strip()
df1 = (df.melt(id_vars=['YEAR','MN','DT','PRMEAN','PRSMAX','PRSMIN'],
               value_name='HR',
               var_name='HOUR')
         .assign(HOUR = lambda x: x.HOUR.str.extract('(\d+)'))
         .sort_values(['YEAR','MN','DT','HOUR'])
         )
print (df1.head(30))
       YEAR  MN  DT PRMEAN PRSMAX PRSMIN HOUR     HR
0      2001   1   1  949.5  951.8  947.8   01  949.3
3227   2001   1   1  949.5  951.8  947.8   02  949.1
6454   2001   1   1  949.5  951.8  947.8   03  948.5
9681   2001   1   1  949.5  951.8  947.8   04  948.5
12908  2001   1   1  949.5  951.8  947.8   05  948.3
16135  2001   1   1  949.5  951.8  947.8   06  948.6
19362  2001   1   1  949.5  951.8  947.8   07  949.5
22589  2001   1   1  949.5  951.8  947.8   08  950.3
25816  2001   1   1  949.5  951.8  947.8   09  951.6
29043  2001   1   1  949.5  951.8  947.8   10  951.8
32270  2001   1   1  949.5  951.8  947.8   11  951.8
35497  2001   1   1  949.5  951.8  947.8   12  950.8
38724  2001   1   1  949.5  951.8  947.8   13  949.7
41951  2001   1   1  949.5  951.8  947.8   14  948.8
45178  2001   1   1  949.5  951.8  947.8   15  947.8
48405  2001   1   1  949.5  951.8  947.8   16  947.8
51632  2001   1   1  949.5  951.8  947.8   17  947.8
54859  2001   1   1  949.5  951.8  947.8   18  947.8
58086  2001   1   1  949.5  951.8  947.8   19  948.8
61313  2001   1   1  949.5  951.8  947.8   20  949.7
64540  2001   1   1  949.5  951.8  947.8   21  949.9
67767  2001   1   1  949.5  951.8  947.8   22  950.7
70994  2001   1   1  949.5  951.8  947.8   23  950.6
74221  2001   1   1  949.5  951.8  947.8   24    950
1      2001   1   2  951.2  953.4  948.8   01  949.8
3228   2001   1   2  951.2  953.4  948.8   02  949.5
6455   2001   1   2  951.2  953.4  948.8   03    949
9682   2001   1   2  951.2  953.4  948.8   04  948.8
12909  2001   1   2  951.2  953.4  948.8   05  948.9
16136  2001   1   2  951.2  953.4  948.8   06  949.7