Вам нужно изменить:
cols_to_retain = datacan[[ "Tumour_Types_Somatic","Tumour_Types_Germline","Mutation_Types","Tissue_Type"]]
cat_dict = datacan[ cols_to_retain ].to_dict( orient = 'records' )
до:
cols_to_retain = [ "Tumour_Types_Somatic","Tumour_Types_Germline","Mutation_Types","Tissue_Type"]
cat_dict = datacan[ cols_to_retain ].to_dict( orient = 'records' )
потому что, если выбрать двойное значение []
, оно называется подмножеством и возвращает отфильтрованный DataFrame
, а не имена столбцов.
Другое возможное решение:
df = datacan[[ "Tumour_Types_Somatic","Tumour_Types_Germline","Mutation_Types","Tissue_Type"]]
cat_dict = df.to_dict( orient = 'records' )