首页 > 解决方案 > 根据单词拆分数据框字符串并将它们存储在数据框列中

问题描述

在我的数据框中,我有一些名称,我想根据一些单词对其进行拆分。

数据框(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)

我怎样才能做到这一点?

标签: pythonpython-3.xpython-2.7dataframe

解决方案


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

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

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


推荐阅读