熊猫:从extractall中加入结果

Alo*_*ble 1 python pandas

我有一个数据框,我想提取模式中所有出现的内容,然后将它们作为单个字符串连接起来,成为原始数据框的新列。

例:

original = pd.DataFrame(["bonjour bonjour", "au revoir bonjour", "lala"])


                   0
0    bonjour bonjour
1  au revoir bonjour
2               lala
Run Code Online (Sandbox Code Playgroud)

预期结果 :

                   0                 1
0    bonjour bonjour  bonjour, bonjour
1  au revoir bonjour           bonjour
2               lala                  
Run Code Online (Sandbox Code Playgroud)

我卡住的地方:

extracted = original[0].str.extractall("(bonjour)")

               0
  match         
0 0      bonjour
  1      bonjour
1 0      bonjour
Run Code Online (Sandbox Code Playgroud)

我无法管理这个结果,我真的不知道如何使用该结构。看起来很简单,但是根据我的访问方式,我没有得到想要的东西。

Flo*_*oor 5

您需要使用findall而不是提取全部

original['new'] = original[0].str.findall('bonjour').apply(','.join)

          0                  new
0    bonjour bonjour   bonjour, bonjour
1  au revoir bonjour            bonjour
2               lala                  
Run Code Online (Sandbox Code Playgroud)

  • `original[1] = original[0].str.findall('bonjour').str.join(',')` 更快更简洁。 (3认同)