我有一个清单如下,这是一个巨大的清单,这只是它的一大块。你知道吗
my_list= [['I. R. Palmer','U. Kersten'],
['H. Breitwieser', 'U. Kersten'],
['Halvard Skogsrud', 'Boualem Benatallah', 'Fabio Casati', 'Manh Q. Dinh'],
['Stefano Ceri', 'Piero Fraternali', 'Stefano Paraboschi']]
我想给列表中的每个字符串分配一个唯一的数值。如果某个字符串在其他地方重复,请为其指定相同的上一个值
new_list= [[0,1],
[2,1],
[3,4,5,6],
[7,8,9]]
我试过了
pd.factorize(my_list)
但我越来越
unhashable type: 'list'
您可以展平列表,使用
factorize
处理1d数组,通过zip
创建dict并在嵌套列表中替换:pandas.factorize
对一维序列进行运算,但有一个二维序列。由于你的二维序列不是一个规则的形状(每个内部列表有不同的长度),你不能通过重塑来解决这个问题。您看到的错误是因为pandas试图将内部列表视为类别,而不是内部列表中的字符串。你知道吗您可以自己构建结果:
在
pd.factorize
中只能有一个一维序列。参考doc您可以使用
np.concatenate
将列表转换为1D输出:
相关问题 更多 >
编程相关推荐