如何移除df指定列中的文本短语,仅保留数字值?
处理DataFrame保留数字列内容
需求说明
原始DataFrame:
| Column A | Column B |
|---|---|
| FUNCIONARIOS | 30140 |
| BURITIS | 30140 |
| 30431 | 30145 |
| 35481 | 54585 |
需要将Column A中仅保留纯数字内容,非数字内容置空,处理后目标结果:
| Column A | Column B |
|---|---|
| 30140 | |
| 30140 | |
| 30431 | 30145 |
| 35481 | 54585 |
解决方案
方法一:正则提取纯数字
使用str.extract配合正则表达式,只提取完全由数字组成的内容,非数字内容会被转为NaN,再用fillna('')置空:
import pandas as pd # 构造示例数据 df = pd.DataFrame({ 'Column A': ['FUNCIONARIOS', 'BURITIS', '30431', '35481'], 'Column B': [30140, 30140, 30145, 54585] }) # 处理Column A df['Column A'] = df['Column A'].str.extract(r'^(\d+)$', expand=False).fillna('') print(df)
方法二:判断数字后替换
用str.isdigit判断单元格是否为纯数字,再用where保留符合条件的值,否则替换为空字符串:
import pandas as pd df = pd.DataFrame({ 'Column A': ['FUNCIONARIOS', 'BURITIS', '30431', '35481'], 'Column B': [30140, 30140, 30145, 54585] }) df['Column A'] = df['Column A'].where(df['Column A'].str.isdigit(), '') print(df)
内容的提问来源于stack exchange,提问作者Rafael Augusto
相关产品推荐
相关产品推荐

