如何替换DataFrame中仅含小数点的单元格,保留小数中的小数点
如何仅替换DataFrame中值为单独小数点的单元格,保留小数中的小数点?
初始示例DataFrame:
| id |
|---|
| 2.2222 |
| . |
| . |
| 3.2 |
| 1.0 |
你之前尝试的代码会把所有小数点都删掉,不符合需求:
df = pd.DataFrame({'id':['2.2222','.','.','3.2','1.0']}) df['id'] = df['id'].str.replace('.','',regex=False)
执行后得到的错误结果:
| id |
|---|
| 22222 |
| 32 |
| 10 |
下面两种方法可以实现你的需求:
方法1:使用replace匹配整个单元格值
df = pd.DataFrame({'id':['2.2222','.','.','3.2','1.0']}) df['id'] = df['id'].replace('.', '', regex=False)
方法2:布尔索引定位修改
df = pd.DataFrame({'id':['2.2222','.','.','3.2','1.0']}) df.loc[df['id'] == '.', 'id'] = ''
执行后得到的期望结果:
| id |
|---|
| 2.2222 |
| 3.2 |
| 1.0 |
这两种方法都是精准匹配**整个单元格内容为.**的情况,不会改动那些包含小数点的小数字符串。
内容的提问来源于stack exchange,提问作者Dread
相关产品推荐
相关产品推荐

