Вы можете иметь только 1-D последовательность в pd.factorize
.См. doc
. Вы можете использовать np.concatenate
для преобразования списка в 1D
import numpy as np
print(np.concatenate(my_list))
# array(['I. R. Palmer', 'U. Kersten', 'H. Breitwieser', 'U. Kersten',
# 'Halvard Skogsrud', 'Boualem Benatallah', 'Fabio Casati',
# 'Manh Q. Dinh', 'Stefano Ceri', 'Piero Fraternali',
# 'Stefano Paraboschi'], dtype='<U18')
print(pd.factorize(np.concatenate(my_list)))
Вывод:
(array([0, 1, 2, 1, 3, 4, 5, 6, 7, 8, 9], dtype=int64),
array(['I. R. Palmer', 'U. Kersten', 'H. Breitwieser', 'Halvard Skogsrud',
'Boualem Benatallah', 'Fabio Casati', 'Manh Q. Dinh',
'Stefano Ceri', 'Piero Fraternali', 'Stefano Paraboschi'],
dtype=object))