PEMS-SF 数据集特征工程:Python 处理方法及静态特征添加
在处理 PEMS-SF 数据集时,我们可以使用 Python 的 pandas 库和 numpy 库来处理数据和进行特征工程。下面是一个简单的例子,假设我们已经把 PEMS-SF 数据集的 .csv 文件读取为一个 pandas 数据帧(DataFrame):
import pandas as pd
import numpy as np
# 加载 PEMS-SF 数据集中的 .csv 文件
df = pd.read_csv('PEMS-SF/PEMS_SF.csv', index_col=0)
# 将时间戳转换为日期格式
df.index = pd.to_datetime(df.index, format='%m/%d/%Y %H:%M')
# 添加小时、星期几等特征
df['hour'] = df.index.hour
df['day_of_week'] = df.index.dayofweek
# 创建节假日特征
holidays = pd.read_csv('PEMS-SF/PEMS_SF_holidays.csv', index_col=0)
holidays.index = pd.to_datetime(holidays.index, format='%m/%d/%Y')
df['holiday'] = df.index.isin(holidays.index)
# 创建天气特征
weather = pd.read_csv('PEMS-SF/PEMS_SF_weather.csv', index_col=0)
weather.index = pd.to_datetime(weather.index, format='%m/%d/%Y')
df = pd.merge(df, weather, left_index=True, right_index=True)
# 对于缺失的天气数据,使用前一个已知值进行填充
df['DryBulbCelsius'] = df['DryBulbCelsius'].fillna(method='ffill')
df['RelativeHumidity'] = df['RelativeHumidity'].fillna(method='ffill')
上述代码中,我们首先将 PEMS-SF 数据集中的 .csv 文件加载到 pandas 数据帧中。然后,我们将时间戳转换为日期格式,并添加小时和星期几等特征。接下来,我们加载 PEMS-SF 数据集中的节假日 .csv 文件,并将时间戳转换为日期格式。然后,我们将上述节假日数据添加到数据帧中的 'holiday' 列中。最后,我们加载 PEMS-SF 数据集中的天气 .csv 文件,并将时间戳转换为日期格式。然后,我们将天气数据合并到数据帧中,并使用前一个已知值对缺失数据进行填充。
这个例子展示了如何用 Python 处理 PEMS-SF 数据集,包括如何添加特征和如何处理静态变量。但是需要注意的是,这只是一个简单的例子,实际处理数据时可能需要更多的特征工程和数据清洗。
如果没有静态变量 CSV 文件怎么办?
我们可以使用一些 Python 库来获取静态变量信息,例如:
- holidays 库:用于获取节假日信息。
- weather-api 库:用于获取天气信息。
例如,我们可以使用 holidays 库获取节假日信息,并将其添加到数据帧中:
import holidays
us_holidays = holidays.US()
df['holiday'] = df.index.isin(us_holidays)
当然,获取天气信息可能需要使用天气 API,并且需要考虑 API 调用频率和数据获取成本。
总而言之,在处理 PEMS-SF 数据集时,我们需要根据具体情况进行特征工程和数据清洗。Python 提供了丰富的库和工具,可以帮助我们高效地完成这些任务。
原文地址: https://www.cveoy.top/t/topic/myi8 著作权归作者所有。请勿转载和采集!