gpt4 book ai didi

python - 如何在 Pandas 系列中使用多个分隔符并拆分为多行

转载 作者:行者123 更新时间:2023-12-04 00:13:20 25 4
gpt4 key购买 nike

我有一个这样的数据框。

df = pd.DataFrame({
"Name" : ["ABC LLC Ram corp", "IJK Inc"],
"id" : [101, 102]
})

Name id
0 ABC LLC Ram corp 101
1 IJK Inc 102

我正在尝试根据我的分隔符将名称系列拆分为多行。我可以拆分但也无法保留分隔符。

分隔符 = ["inc","corp","llc"]

我的预期输出是,

Name       id
ABC LLC 101
RAM corp 101
IJK Inc 102

请帮忙,谢谢。

最佳答案

您可以使用 str.findall Name 列中查找所有匹配的正则表达式模式,然后将这些匹配项分配给列 Nameexplode Name 上的数据框:

pat = fr"(?i)(.*?(?:{'|'.join(separators)}))"
df.assign(Name=df['Name'].str.findall(pat)).explode('Name')

正则表达式详细信息:

  • (?i) : 不区分大小写的标志
  • ( : 捕获组的开始
  • .*? : 匹配除行终止符以外的任何字符,次数在零到无限次之间,尽可能少 (lazy match)。
  • (?: : 非捕获组的开始
  • {'|'.join(separators)} : f-string计算结果为 inc|corp|llc 的表达式
  • ) : 非捕获组结束
  • ) : 捕获组结束

        Name   id
0 ABC LLC 101
0 Ram corp 101
1 IJK Inc 102

关于python - 如何在 Pandas 系列中使用多个分隔符并拆分为多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66506384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com