python-3.x - 数据框 - 检查数字列的条件并修改列
问题描述
我的数据框如下:
NameA 401016815
NameB
NameC 414969141
NameD 0403 612 699
如何让数据框进行条件检查[第一个字符为 4,数字的字符长度为 9 位],如果满足条件,则在开始时添加零。
条件检查是否字符长度为 12 位但仅包含 9 个数字,应删除其间的空格。
解决方案
我们可以用它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
推荐阅读
- python - 根据特定名称对数据框中的行进行分组
- javascript - d3.brush 无法获取内容
- java - 我无法使用我的 Java 应用程序在终端中打印颜色
- jupyter-notebook - 如何从服务器使用 Jupyterhub 设置多用户 Jupyterlab 服务器
- c++ - Qt 中的“格式化”CSV 输出
- c# - 如何为剃须刀文件编写诊断分析器?
- python - 更改 os.getenv() 值帮助(初学者)
- android - 拆分大位图后从位图顶部删除空白?
- css - 我无法通过 Extend 和 Media 克服 SCSS 限制
- python - 石墨烯继电器中基于光标的分页