PEMS-SF 数据集处理:特征工程及静态特征添加
若想要在 Python 中处理 PEMS-SF 数据集,并添加静态特征,可以按照以下步骤进行:
- 加载 PEMS-SF 数据集
首先需要使用 Python 中的 pandas 库加载 PEMS-SF 数据集。例如:
import pandas as pd
df = pd.read_csv('PEMS-SF/PEMS_train.csv')
- 数据预处理
在加载数据集之后,需要对数据进行预处理。通常需要进行以下操作:
- 缺失值填充
- 数据类型转换
- 数据重采样
例如,对于 PEMS-SF 数据集,可以使用以下代码对数据进行缺失值填充:
df = df.fillna(method='ffill')
- 添加静态特征
在 PEMS-SF 数据集中,静态特征包括天气、节假日等。如果没有静态特征的 csv 文件,可以使用 API 或爬虫获取相关信息,或者从其他数据集中获取。例如,可以使用以下代码添加天气特征:
import requests
def get_weather(date):
url = f'https://api.openweathermap.org/data/2.5/weather?q=San Francisco&appid=<your_app_id>&dt={date}'
response = requests.get(url)
weather = response.json()
return weather['weather'][0]['main']
df['date'] = pd.to_datetime(df['date'])
df['weather'] = df['date'].apply(lambda x: get_weather(x.timestamp()))
此代码使用了 OpenWeatherMap 的 API 获取每天的天气信息,并添加了一个名为'weather'的列,包含了每天的天气信息。
- 特征工程
在添加静态特征之后,需要进行特征工程。特征工程包括特征选择、特征缩放、特征编码等。例如,可以使用以下代码对数据进行特征缩放:
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
df[['speed', 'occupancy']] = scaler.fit_transform(df[['speed', 'occupancy']])
此代码使用了 sklearn 库中的 MinMaxScaler 对数据集中的'speed'和'occupancy'两个特征进行了缩放。
- 数据保存
在完成特征工程之后,需要将处理后的数据保存。例如:
df.to_csv('PEMS-SF/processed_data.csv', index=False)
此代码将处理后的数据保存到名为'processed_data.csv'的文件中,不保存行索引。
原文地址: https://www.cveoy.top/t/topic/myiu 著作权归作者所有。请勿转载和采集!