I think you need set_index from column class and then swap arguments in at, because first argument is index and second column name:
df = df.set_index('class')
#df.set_index('class', inplace=True)
print (df)
fred bill
class
a 23 35
b 123 45
c 34 45
d 4 45
print (df.at['b','fred'] )
123
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download
Email codedump link for How to get the cell at a location in pandas dataframe using a column as the index