【问题标题】:Split dataframe string based on words and store them in a dataframe column根据单词拆分数据框字符串并将它们存储在数据框列中
【发布时间】:2021-05-31 21:39:02
【问题描述】:

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

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

我该怎么做?

【问题讨论】:

    标签: python python-3.x python-2.7 dataframe


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢!如何在此处包含 id?
    • 您可以重新分配列,name 应该是 0split option 应该是 1。由于结果是相同的长度,因此 id 将匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 2021-05-26
    • 1970-01-01
    相关资源
    最近更新 更多