这是我的数据帧:
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
并得到我需要的东西,但它很慢,我想知道是否有更快的方法.
可能有一种更奇特的方式,但这有效:
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
可以在他们的文档中找到.
归档时间: |
|
查看次数: |
62 次 |
最近记录: |