根据单词拆分数据框字符串并将它们存储在数据框列中

Split dataframe string based on words and store them in a dataframe column

在我的数据框中,我有一些名称,我想根据一些词拆分它。

数据帧(dff):

 id            name
  1     Midian Almeida(Last)
  2     Robert(ASA)(first)
  3     Nikole John (middle)
  4     Nikole John (first)
  5     Raça Negra  (last)

我想根据第一个、最后一个、中间的一个拆分它们

我尝试了以下部分

dff['name'].str.split('(first)|(last)|(middle)', expand=True).add_prefix('name_' ) 它给出以下输出:

    name_0 
  Midian Almeida                
    Robert(ASA)       
    Nikole John       
    Nikole John      
    Raça Negra

但我想将拆分的单词放在另一列中。 期望的输出是:

 id           name       split option
  1     Midian Almeida    (Last)
  2     Robert(ASA)       (first)
  3     Nikole John       (middle)
  4     Nikole John       (first)
  5     Raça Negra        (last)

我该怎么做?

这包含您需要的内容:。 以下应该有效:

df.name.str.split(r'(\(Last\)|\(first\)|\(middle\))', expand=True)[[0, 1]]

您需要正则表达式的原因是因为您需要捕获组,在本例中是整个匹配字符串周围的括号。如果你想玩正则表达式以获得更好的感觉,你可以使用以下内容:https://regex101.com/