我试图用最后一个“-”分隔一列,并后跟所有大写字符串字母。
它不一定是最后一个孤立的分隔符。 但它将是所有大写字符串之前的最后一个。
我可以找到根据第一个/最后一个分隔符分隔的单独问题。 但不能结合使用。
下面,我有一个 df,其 Value 包含各种组合。 我想将 col 分成两个单独的列,其中最后一个“-”和大写字母之前的所有内容。
我的最后一列正确,但第一列不正确。
我会在这里使用 str.extract :
df[["First", "Last"]] = df["Value"].str.extract(r'(.*?)\s*-\s*([A-Z]+(?:\s*-?\s*[A-Z]+)*)$')
面使用了 str.extract 的 2/多列版本。 它捕获第一个捕获组中的名字。 它会匹配,直到遇到最近的连字符,后面全部大写。 然后它与第二个捕获组中的姓氏匹配。