如何在 pandas 中将逗号分隔的文本与 ppose 列中的相应文本拆分和连接

How to split and concate text separated by commas with the corresponding text in the pposing column in pandas

提问人:Henry 提问时间:10/28/2023 最后编辑:Henry 更新时间:10/28/2023 访问量:47

问:

因此,我尝试将用逗号分隔的文本连接在一列中,并将其与对立列中相应位置的文本连接起来。英语不是我的第一语言,但我认为下面的照片带有 所需的输出列,将阐明我需要做什么。

在此处输入图像描述

CNTRY       CUSTOMERID          ACC_TYPE                TheDesiredResult
JO,AE,QA    HJM23,JKU78,OI9PUJ  AH,SH,AS                JO,HJM23,AH - AE,JKU78,SH - QA,OI9PUJ,AS

我正在尝试在熊猫中执行此操作,因为在 excel 中文本到列无法达到预期的结果,因为 每行将有不同数量的字符串,用逗号分隔。我试过 youtube 但不能 拼出一个代码来解决这个问题。

提前致谢!

我尝试将用逗号分隔的数据分成不同的列,然后将它们连接回来, 但这是一个巨大的失败。因为每个属性所需的列数将是疯狂的 这种方法。

Python Pandas 切片 文本操作

评论

1赞 Codist 10/28/2023
您似乎忘记将麻烦的代码添加到您的问题中

答:

0赞 Timeless 10/28/2023 #1

假设每列(每行)的 () 数量相同,您可以尝试:,

# optional if you have only 3 columns
cols = ["CNTRY", "CUSTOMERID", "ACC_TYPE"]

splits = df[cols].apply(lambda s: s.str.split(",\s*"))

df["TheDesiredResult"] = " - ".join(
    ",".join(lst) for vals in splits.to_numpy() for lst in zip(*vals))

输出:

CNTRY公司 客户 ID ACC_TYPE 期望的结果
乔,AE,QA HJM23,JKU78,OI9PUJ 啊,呸,呸,呸 JO,HJM23,AH - AE,JKU78,SH - QA,OI9PUJ,AS

评论

0赞 Henry 10/29/2023
感谢您的回复,不幸的是,每列都有不同数量的逗号。这是这里的主要障碍之一
0赞 Timeless 10/29/2023
这将处理不同数量的逗号,而不是列。试一试;)
0赞 Henry 11/7/2023
嘿,很抱歉回复晚了,它对第一行效果很好,但不幸的是,当它归结为下行时,它一直包含上行的数据。