Как преобразовать фрейм данных в ndarray из 0 и 1 секунд?

#python #arrays #pandas #numpy

#python #массивы #панды #numpy

Вопрос:

У меня есть фрейм данных Pandas, который выглядит следующим образом:

 col_1 col_2
a     4
a     3
b     2
c     2
d     1
b     4
c     1
  

Мне нужно преобразовать его в числовой массив 2D-массивов, где каждый 2D-массив соответствует одной из букв. Например, если ‘a’ не встречается вместе с 1 и 2, а встречается с 3 и 4, соответствующий ему 2D-массив должен выглядеть [0, 0, 1, 1] следующим образом. Итак, в этом примере мне нужно:

 [[0, 0, 1, 1], [0, 1, 0, 1], [0, 1, 0, 0], [1, 0, 0, 1]]
  

Каков наилучший способ сделать это?

Ответ №1:

Вот один из способов crosstab

 l = pd.crosstab(df.col_1,df.col_2).values.tolist()
Out[23]: [[0, 0, 1, 1], [0, 1, 0, 1], [1, 1, 0, 0], [1, 0, 0, 0]]