数据框-检查数字列的条件并修改列

时间:2019-11-09 13:15:28

标签: python-3.x pandas dataframe

我的数据框如下:

NameA   401016815
NameB   
NameC   414969141
NameD   0403 612 699

如何获取数据框以进行条件检查[第一个字符为4,字符长度的数字为9位数字],如果满足条件,则在开始时添加零。

条件检查以查看字符长度是否为12位数字,但仅包含9个数字,应删除中间的空格。

1 个答案:

答案 0 :(得分:1)

我们可以使用Series.str.len来检查字符串的长度。 Series.startswith 检查字符串的开头。 Series.str.replace删除空格。我们使用Series.mask 在特定位置替换或添加字符:

#df=df.reset_index() #if Names is the index
df['Number'].mask(df['Number'].str.len()>=12,df['Number'].str.replace(' ',''),inplace=True)
start=df['Number'].str.startswith('4').fillna(False)
df['Number'].mask(start,'0'+df['Number'],inplace=True)
print(df)

输出

   Names      Number
0  NameA  0401016815
1  NameB         NaN
2  NameC  0414969141
3  NameD  0403612699