我有三组代码(代码1、代码2和代码3)包含字母数字对象。所有代码都用分隔符(;)分隔,并且这些代码是基于顺序关联的,如代码1的A123与代码2的A和代码3的A445相关,依此类推。代码3有一些代码重复或重复
我想要的输出是得到连接的“代码4”,其中代码1和代码2基于这两个条件之一连接
a)如果代码3中的相应代码没有重复值
b)如果代码3中的对应代码具有重复值,则需要使用代码3中最后一个重复值位置对应的位置来连接代码1和代码2(类似于B678 R4,因为代码3中A445重复了两次,连接代码1和代码2需要考虑A445的第四个位置)
让我知道是否可以使用任何逻辑来获得输出。提前谢谢
dataframe df的Python脚本是
df11 = pd.DataFrame({"code1": ["A123; A321; B478; B678; C567", "A321; A821; B448; B698; C577"], "code2": ["A; B5; N5; R4; H5", "A3; B; N; R7; H2"],"code3": ["A445; A323; A323; A445; A659", "A328; A328; A621; A442; A621"]}, index=[0, 1], )
步骤:
applymap
将每个值转换为一个列表李>explode
数据帧李>code3
列删除df中的重复项,并保留最后一个值李>code3
列并加入code1 & code2
李>groupby
将它们聚合回来以获得所需的输出李>最新答复:
输出:
我做了一些操作:
(1)使用正则表达式将项目提取到列表中,并反转列表顺序
(2)在“代码3”中查找唯一项的索引
(3)根据索引计算“代码1”和“代码2”中的相应值
输出测向
相关问题 更多 >
编程相关推荐