pandas对天气状况和风力风向数据进行处理,天气状况如“晴/晴”保留第一个“晴”,“'多云/小雨'”都保留,风力风向如“南风1-2级/南风1-2级”保留第一个“南风1-2级”
时间: 2023-11-16 18:05:48 浏览: 69
可以使用pandas中的apply函数和正则表达式来实现对天气状况和风力风向数据的处理。
对于天气状况,可以使用正则表达式来匹配出第一个中文字符或者英文单词,然后将剩下的内容去掉。示例代码如下:
```python
import pandas as pd
import re
# 构造数据
data = {"日期": ["2021-01-01", "2021-01-02", "2021-01-03"],
"天气状况": ["晴/晴", "多云/小雨", "阴/中雨"]}
df = pd.DataFrame(data)
# 定义函数,处理天气状况
def process_weather(weather):
# 使用正则表达式匹配第一个中文字符或英文单词
pattern = r"[\u4e00-\u9fa5a-zA-Z]+"
match = re.search(pattern, weather)
if match:
return match.group()
else:
return ""
# 对天气状况进行处理
df["天气状况"] = df["天气状况"].apply(process_weather)
print(df)
```
输出结果为:
```
日期 天气状况
0 2021-01-01 晴
1 2021-01-02 多云
2 2021-01-03 阴
```
对于风力风向,可以先使用正则表达式匹配出第一个中文字符和数字,然后将剩下的内容去掉。示例代码如下:
```python
# 构造数据
data = {"日期": ["2021-01-01", "2021-01-02", "2021-01-03"],
"风力风向": ["南风1-2级/南风1-2级", "北风3-4级/东北风3-4级", "东北风4-5级/东北风4-5级"]}
df = pd.DataFrame(data)
# 定义函数,处理风力风向
def process_wind(wind):
# 使用正则表达式匹配第一个中文字符和数字
pattern = r"[\u4e00-\u9fa5]\d-\d级"
match = re.search(pattern, wind)
if match:
return match.group()
else:
return ""
# 对风力风向进行处理
df["风力风向"] = df["风力风向"].apply(process_wind)
print(df)
```
输出结果为:
```
日期 风力风向
0 2021-01-01 南风1-2级
1 2021-01-02 北风3-4级
2 2021-01-03 东北风4-5级
```
阅读全文