用空值拆分 Python 中的字符串

Split String in Python with Empty Values

我有一列字符串,其中包括两个唯一的列 - 一列包含两个字母,然后是一列 Y 或 E。在这两种情况下,它们并不总是被填充。我希望将它们分成两个新列:

import pandas as pd
d={'col1':['AD','Y','E','AD E','WZ E'],
   'col1_new':['AD','','','AD','WZ'],
   'col2_new':['','Y','E','E','E']}
pd.DataFrame(d)

有什么建议吗?

您可以使用正则表达式来提取两部分:

df[['col1_new', 'col2_new']] = (df['col1'].str.extract('(\w{2})?\s*(\w)?')
                                          .fillna('')
                                )

输出:

   col1 col1_new col2_new
0    AD       AD         
1     Y                 Y
2     E                 E
3  AD E       AD        E
4  WZ E       WZ        E

正则表达式

(\w{2})?     # capture 2 ({2}) "word" characters (\w), optionally (?)
\s*          # match zero or more (*) spaces (\s)
(\w)?        # capture 1 "word" character, optionally

regex demo