For select last value need Series.iloc or Series.iat, because df['col1'] return Series:
print (df['col1'].iloc[-1])
3
print (df['col1'].iat[-1])
3
Or convert Series to numpy array and select last:
print (df['col1'].values[-1])
3
Or use DataFrame.iloc or DataFrame.iat – but is necessary position of column by Index.get_loc:
print (df.iloc[-1, df.columns.get_loc('col1')])
3
print (df.iat[-1, df.columns.get_loc('col1')])
3
Or is possible use last value of index (necessary not duplicated) and select by DataFrame.loc:
print (df.loc[df.index[-1], 'col1'])
3