0
0 комментариев

Помогите пожалуйста разобраться с pd.DataFrame.loc

Есть таблица df:
максимальный размер типа(например) — 5

    types
24433   3
23933   1
23433   5
22933   3
22433   0

Хочу что бы стало так:

                types
24433   [0,0,0,1,0,0]
23933   [0,1,0,0,0,0]
23433   [0,0,0,0,0,1]
22933   [0,0,0,1,0,0]
22433   [1,0,0,0,0,0]

использую для этого:

 #df_types.index - это таблица типов и количество на каждый тип
 #_____________
 # (index)types   count
 #       1         42
 #       5         50
 
 for type_number, i in enumerate(df_types.index):
        #создаю нулевую матрицу в размер количества типов
        type_vector = np.zeros(6)
        #на место типа ставлю 1
        type_vector[type_number] = 1
        df.loc[df.types == type_number, 'types'] = type_vector

Error:

ValueError: Must have equal len keys and value when setting with an
iterable

Я конечно понимаю что я могу пройтись по всему списку целиком и создать новый список [[0,0,0,1,0,0],..] и потом его приклеить, но это же не самый оптимальный способ.


Добавить комментарий