Pandas在两列中操纵字符串

use*_*890 4 string pandas

这是我的数据帧:

           A                B
0   asdf|afsdf|fasd    sdsd|wer|wer
1   sdfsdf             sdfsdff
2   sdf|s              sdfsde|sdf
Run Code Online (Sandbox Code Playgroud)

我想形成一个列C,其中包含从列A到列的连接值, B直到第一个|,如果|不存在,那么它将简单地连接两个列.同时连接时我想-- 在这里插入列C应该是什么样子:

         C
0   asdf--sdsd
1   sdfsdf--sdfsdff
2   sdf--sdfsde
Run Code Online (Sandbox Code Playgroud)

我可以通过每一行df.loc并得到我需要的东西,但它很慢,我想知道是否有更快的方法.

Mic*_*cht 5

可能有一种更奇特的方式,但这有效:

In [1]: import pandas as pd

In [2]: d = {'A': ('asdf|afsdf|fasd', 'sdfsdf', 'sdf|s'),
             'B': ('sdsd|wer|wer', 'sdfsdff', 'sdfsde|sdf')}

In [3]: data = pd.DataFrame(d)

In [4]: data['C'] = data['A'].str.split('|').str.get(0) + "--" + data['B'].str.split('|').str.get(0)

In [5]: data
Out[5]: 
                 A             B                 C
0  asdf|afsdf|fasd  sdsd|wer|wer       asdf--sdsd
1           sdfsdf       sdfsdff  sdfsdf--sdfsdff
2            sdf|s    sdfsde|sdf      sdf--sdfsde
Run Code Online (Sandbox Code Playgroud)

有关使用字符串的参考资料pandas可以在他们的文档中找到.