我有两列:serial_number
和inv_number
包含列表。如果有一个inv_number
用于多个serial_number
,我需要使 's 列表的大小inv_number
与 's 相同serial_number
。
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 个序列号,但有 1 个库存号,因此应更改为
[101040026976, 101040026976, 101040026976, 101040026976, 101040026976, 101040026976]
我尝试通过“乘以”值来制作列表(例如[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')) -> None
我怎么解决这个问题?
尝试:
印刷:
和
map
,len
&mul
: