PEMS-SF 数据集处理指南:添加静态特征和特征工程
处理 PEMS-SF 数据集并添加静态特征的主要步骤如下:
-
读取 PEMS-SF 数据集的 .mat 文件,将其转换为 pandas DataFrame 格式。
-
对于 PEMS-SF 数据集中的每个站点,计算每个小时的平均车速和流量,并将其作为新的特征添加到 DataFrame 中。
-
对于静态特征,可以使用其他数据源,例如天气、节假日等的 CSV 文件,将其读取为 DataFrame,并根据日期和时间与 PEMS-SF 数据集中的时间匹配。如果没有这些静态特征的 CSV 文件,则可以使用 Python 中的 API 来获取相关数据。
-
将静态特征添加到 PEMS-SF DataFrame 中,根据日期和时间匹配。
-
对于缺失数据,可以使用插值方法填充缺失值,例如线性插值或 KNN 插值。
-
最后,将 DataFrame 保存为新的 CSV 文件,以供后续使用。
下面是一个简单的示例代码,演示如何处理 PEMS-SF 数据集并添加静态特征:
import pandas as pd
import numpy as np
import datetime
# 读取 PEMS-SF 数据集的 .mat 文件,转换为 pandas DataFrame 格式
df = pd.read_csv('PEMS-SF/sensor_5.csv', header=None, names=['Timestamp', 'Flow', 'Occupancy', 'Speed'])
df['Timestamp'] = pd.to_datetime(df['Timestamp'], format='%Y-%m-%d %H:%M:%S')
df.set_index('Timestamp', inplace=True)
# 计算每个小时的平均车速和流量
df_speed = df['Speed'].resample('H').mean()
df_flow = df['Flow'].resample('H').mean()
# 将新的特征添加到 DataFrame 中
df_new = pd.DataFrame({'Speed': df_speed, 'Flow': df_flow})
# 添加静态特征
# 读取天气数据的 CSV 文件,并将其转换为 pandas DataFrame 格式
df_weather = pd.read_csv('weather.csv')
df_weather['Date'] = pd.to_datetime(df_weather['Date'])
df_weather.set_index('Date', inplace=True)
# 将天气数据与 PEMS-SF 数据集匹配
df_new['Date'] = df_new.index.date
df_new['Time'] = df_new.index.time
df_new = df_new.join(df_weather, on='Date')
# 对于缺失数据,使用线性插值填充
df_new.interpolate(method='linear', inplace=True)
# 保存新的 DataFrame 为 CSV 文件
df_new.to_csv('PEMS-SF/sensor_5_new.csv')
在这个示例中,我们使用了一个名为 'weather.csv' 的静态特征文件,它包含了日期、温度、湿度等信息。我们将其转换为 pandas DataFrame 格式,并根据日期与 PEMS-SF 数据集中的时间匹配。然后我们将静态特征添加到 PEMS-SF DataFrame 中,并使用线性插值方法填充缺失值。最后,我们将新的 DataFrame 保存为新的 CSV 文件,以供后续使用。
这只是一个简单的示例,实际的数据处理可能会更加复杂,取决于您使用的数据源和特征。但是,这个示例可以帮助您了解如何处理 PEMS-SF 数据集并添加静态特征。
原文地址: https://www.cveoy.top/t/topic/myi1 著作权归作者所有。请勿转载和采集!