Eu tenho duas colunas: serial_number
e inv_number
contendo listas. Se houver um inv_number
para multiple serial_number
, preciso fazer com que o tamanho da inv_number
lista seja igual ao serial_number
de.
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]
Aqui no índice 33 temos 6 números de série mas um número de inventário, então deve ser alterado para
[101040026976, 101040026976, 101040026976, 101040026976, 101040026976, 101040026976]
Eu tentei fazer isso "multiplicando" valores para fazer uma lista (como [value] * N
):
si.loc[si['inv_number'].apply(len)==1, 'inv_number'].apply
(lambda x: [str(x[0])] * si['serial_number'].apply(len).values)
mas me dá um erro:
UFuncTypeError: ufunc 'multiply' não continha um loop com tipos correspondentes de assinatura (dtype('<U12'), dtype('int64')) -> None
Como posso resolver esse problema?
Tentar:
Impressões:
Com
map
,len
&mul
: