Да, вы можете использовать лямбду для извлечения данных в столбцы:
data = [
[0, 20, [{'id': '3233790e-1f47-403a-bb97-58a14a2f92ab', 'values': [{'number':50, 'level':1}]}]],
[1, 30, [{'id': 'bbc9852c-ac76-4ecd-9afb-dd371f3bd48b', 'values': [{'number':40, 'level':2}]}]],
[2, 40, [{'id': 'be5629e0-458d-4aaa-b2f8-77d8ad1b0f7f', 'values': [{'number':30, 'level':3}]}]],
]
data = pd.DataFrame(data, columns = ['id', 'sec', 'type'])
data = data.set_index('id')
data['sec_id'] = data.loc[:, 'type'].apply(lambda x: x[0]['id'])
data['number'] = data.loc[:, 'type'].apply(lambda x: x[0]['values'][0]['number'])
data['level'] = data.loc[:, 'type'].apply(lambda x: x[0]['values'][0]['level'])
data = data.drop('type',axis=1)
print(data)
вывод:
sec sec_id number level
id
0 20 3233790e-1f47-403a-bb97-58a14a2f92ab 50 1
1 30 bbc9852c-ac76-4ecd-9afb-dd371f3bd48b 40 2
2 40 be5629e0-458d-4aaa-b2f8-77d8ad1b0f7f 30 3