我有两列:包含列表的serial_numberinv_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’))的循环->无

我怎么才能解决这个问题呢?

推荐答案

try :

mask = (df["serial_number"].str.len() > 1) & (df["inv_number"].str.len() == 1)
df.loc[mask, "inv_number"] = df["serial_number"].str.len() * df.loc[mask, "inv_number"]

print(df)

打印:

                                       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, 101040026976, 101040026976, 101040026976, 101040026976, 101040026976]

Python相关问答推荐

如何在具有重复数据的pandas中对groupby进行总和,同时保留其他列

try 在树叶 map 上应用覆盖磁贴

OR—Tools CP SAT条件约束

组/群集按字符串中的子字符串或子字符串中的字符串轮询数据框

如何让这个星型模式在Python中只使用一个for循环?

利用Selenium和Beautiful Soup实现Web抓取JavaScript表

导入...从...混乱

什么是合并两个embrame的最佳方法,其中一个有日期范围,另一个有日期没有任何共享列?

与命令行相比,相同的Python代码在Companyter Notebook中运行速度慢20倍

使用BeautifulSoup抓取所有链接

如何在两列上groupBy,并使用pyspark计算每个分组列的平均总价值

如何检测鼠标/键盘的空闲时间,而不是其他输入设备?

ModuleNotFoundError:没有模块名为x时try 运行我的代码''

Cython无法识别Numpy类型

递归函数修饰器

如何在GEKKO中使用复共轭物

如何在Python中自动创建数字文件夹和正在进行的文件夹?

大型稀疏CSR二进制矩阵乘法结果中的错误

如何在PYTHON中向单元测试S Side_Effect发送额外参数?

解析CSV文件以将详细信息添加到XML文件