pandas“总价”,“建筑面积”,“单价”对应数据中的字符删除,保留数字部分
时间: 2023-09-21 16:06:30 浏览: 104
可以使用pandas中的str.replace方法来删除字符串中的字符,然后再将剩余的数字部分转换为数值类型。例如,假设数据集中有一个名为df的DataFrame,其中“总价”、“建筑面积”、“单价”列需要进行处理,可以使用以下代码:
```python
df['总价'] = df['总价'].str.replace('\D', '').astype(float)
df['建筑面积'] = df['建筑面积'].str.replace('\D', '').astype(float)
df['单价'] = df['单价'].str.replace('\D', '').astype(float)
```
上述代码中,`str.replace('\D', '')`使用正则表达式将字符串中所有非数字字符替换为空字符串,然后使用`astype(float)`将剩余的数字部分转换为浮点数类型。
相关问题
pandas删除一列字符串数据中重复的字符,只保留一个
你可以使用pandas库的drop_duplicates函数,将列中重复的字符串数据删除。具体的代码如下:
df['列名'] = df['列名'].apply(lambda x: ''.join(sorted(set(x), key=x.index)))
这个方法可以去除重复的字符,并且保留第一个字符。
pandas字符串中只保留数字和‘*’
要在pandas字符串中只保留数字和星号(*),您可以使用`str.replace()`方法结合正则表达式来实现。下面是一个示例代码:
```python
import pandas as pd
# 创建一个包含特殊字符的示例Series
data = pd.Series(['Hello123!', '456*How are you?', 'I\'m fine.'])
# 使用正则表达式匹配除了数字和星号之外的所有字符,并替换为空字符串
data = data.str.replace('[^0-9*]', '')
# 打印处理后的结果
print(data)
```
运行上述代码后,您将得到如下输出:
```
0 123
1 456*
2
dtype: object
```
在这个示例中,`[^0-9*]`是一个正则表达式模式,用于匹配除了数字和星号之外的所有字符。`str.replace()`方法将匹配到的字符替换为空字符串,从而只保留数字和星号。
请注意,上述代码中的`data`是一个`pandas`的`Series`对象,您可以根据实际情况将其替换为`DataFrame`中的某一列或其他字符串数据。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)