如何将DataFrame对象中的df的“气温”列中由“/”分隔的两个温度分隔成两列,分别为“最大温度”和“最小温度”并去除单位“℃”
时间: 2024-12-15 19:30:26 浏览: 10
在Pandas中,如果你有一个名为"df"的DataFrame对象,其中的"气温"列包含以"/"分隔的最大值和最小值(如 "25/10℃"),你可以使用正则表达式(regex)配合字符串操作来实现这个转换。下面是一个示例步骤:
1. 首先,你需要创建一个新的空DataFrame来存放结果,因为直接在原DataFrame上修改可能会丢失原始数据。
```python
new_df = df.copy()
```
2. 使用Pandas的`str.extract()`函数提取出最大值和最小值,假设我们用`\d+/\d+\s*℃`作为正则模式,匹配数字以及后面的"C"度。
```python
max_temp, min_temp = new_df['气温'].str.extract(r'(\d+/\d+)\s*℃').values.tolist()
```
这里,`.str.extract()`会返回一个Series,每个元素都是一个列表,所以我们使用`values.tolist()`将其转换为二维列表。
3. 接下来,我们需要把这两个值分割开,并转换回数值类型。可以使用`map()`函数和`split()`方法。
```python
max_temp = max_temp.map(lambda x: float(x.split('/')[0]))
min_temp = min_temp.map(lambda x: float(x.split('/')[1]))
```
4. 最后,将这两个新的列添加到新的DataFrame中。
```python
new_df['最大温度'] = max_temp
new_df['最小温度'] = min_temp
```
阅读全文