字符不存在时创建新列

时间:2018-05-07 15:39:20

标签: python regex pandas

我需要根据缺少两个字符的值创建一个新列。

Column1
a-b
c
d
e:f

需要成为:

Column1    Column2
a-b
c          c
d          d
e:f

1 个答案:

答案 0 :(得分:2)

你需要使用extractall提取所有alpha,然后我们使用str.len()来获取等于1的条件

df['Column2']=df.Column1.loc[df.Column1.str.extractall('(\w+)').sum(level=[0])[0].str.len()==1]
df
Out[472]: 
  Column1 Column2
0     a-b     NaN
1       c       c
2       d       d
3     e:f     NaN

更新:根据您的评论,您需要contains

df['Column2']=df.Column1[~df.Column1.str.contains(':|-')]
df
Out[513]: 
  Column1 Column2
0     a-b     NaN
1       c       c
2       d       d
3     e:f     NaN