首页 > 解决方案 > 数据框 - 检查数字列的条件并修改列

问题描述

我的数据框如下:

NameA   401016815
NameB   
NameC   414969141
NameD   0403 612 699

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

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

标签: python-3.xpandasdataframe

解决方案


我们可以用它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

推荐阅读