один способ сделать это ... однако это можно оптимизировать
so = pd.DataFrame([['Bill',[{'class': 'CS152', 'time': '2:00 PM'}, {'class': 'PHYS162', 'time': '3:30 PM'}]],
['Adam',[{'class': 'EE193', 'time': '1:00 PM'}, {'class': 'PHYS162', 'time': '2:30 PM'}]],
['Sara',[{'class': 'CS152', 'time': '4:00 PM'}, {'class': 'BIO182', 'time': '6:30 PM'}]]
],columns=('Name','Classes'))
for id in so.index:
name = so.loc[id,'Name']
classes = so.loc[id,'Classes']
#create series data for individual person
seriesdata = pd.Series([])
for rowclass in classes:
classname = rowclass['class']
classtime = rowclass['time']
seriesdata[classname]=classtime
print(seriesdata)
#Creating a dictionary of name:series data
newdict[name]=seriesdata
df = pd.DataFrame(newdict)
print(df.T)