我有两列:包含列表的serial_number
和inv_number
.如果有一个inv_number
对应多个serial_number
,我需要使inv_number
‘S名单的大小与serial_number
’S名单的大小相同.
serial_number inv_number
28 [С029768, С029775] [101040031171, 101040031172]
29 [090020960190402011, 090020960190402009] [210134002523, 210134002524]
31 [1094] [410124000215]
32 [01] [101040022094]
33 [F161B5, F17D86, F17D8D, F1825C, F1825A, F1825D] [101040026976]
在索引33处,我们有6个序列号,但有一个库存号,因此它应该更改为
[101040026976, 101040026976, 101040026976, 101040026976, 101040026976, 101040026976]
我try 通过将值"相乘"来生成一个列表(如[value] * N
个):
si.loc[si['inv_number'].apply(len)==1, 'inv_number'].apply
(lambda x: [str(x[0])] * si['serial_number'].apply(len).values)
但它给了我一个错误:
UFuncTypeError:ufunc‘Multiply’不包含具有签名匹配类型(dtype(‘<;u12’)、dtype(‘int64’))的循环->;无
我怎么才能解决这个问题呢?