#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]]