【.csv数据预处理实战】pandas 驾驶参数选取

本文介绍了如何利用pandas进行.csv数据预处理,包括读取数据、去除完全重复行、选取特定列、计算帧数、删除帧数不足120的数据,并最终保存为新文件。
摘要由CSDN通过智能技术生成

项目:驾驶风格聚类
数据太多,首先将需要的数据筛选出来
路线:读取原始数据——>删除重复行——>提取需要数据——>去除帧数小于120的数据——>另存为新的.csv文件

方便浏览先上原始数据

原始数据

无人机采集的6车道车辆行驶信息,1秒30帧的速度。下图是部分数据,只能先将需要的数据筛选出来
在这里插入图片描述

1.读取.csv数据文件

import pandas as pd
df = pd.read_csv('D:/driver/raw_data/Freeway.csv')

2.去除完全重复数据

#去除完全重复的行数据。fist:保留第一次出现的重复行,删除后面的重复行
df = df.drop_duplicates(keep='first')

3.pandas获取.csv文件指定多列数据

#需要处理的csv文件的第一行(各列名称),获取列名为下的数据
save_columns = df[['frameNum', 'carId', 'speed', 'headXft', 'headYft','tailXft','tailYft','laneId']]

4.删除帧数<120的数据

4.1 获取帧数

思路:先按carId分组,分比计算每个carId的frameNum,用frameNum最大值-frameNum最小值=帧数

check0= save_columns.groupby(['carId'])['frameNum'].min().reset_index()#首先按carId分组,获得frameNum最小值,重置索引
check1= save_columns.groupby(['carId'])['frameNum'].max(
好的,以下是使用决策树进行训练和测试的 Python 代码示例,包括数据预处理、特征选择和准确率计算: ``` python import pandas as pd from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score from sklearn.feature_selection import SelectKBest, f_classif from sklearn.preprocessing import StandardScaler # 读取训练集和测试集数据 train_data = pd.read_csv('train.csv') test_data = pd.read_csv('test.csv') label_data = pd.read_csv('label.csv') # 数据预处理 def preprocess_data(data): # 缺失值处理 data['Age'] = data['Age'].fillna(data['Age'].median()) data['Fare'] = data['Fare'].fillna(data['Fare'].median()) # 特征工程 data['FamilySize'] = data['SibSp'] + data['Parch'] + 1 data['IsAlone'] = 1 data['IsAlone'].loc[data['FamilySize'] > 1] = 0 data['Title'] = data['Name'].str.split(", ", expand=True)[1].str.split(".", expand=True)[0] data['Title'].replace(['Ms', 'Mlle'], 'Miss', inplace=True) data['Title'].replace(['Mme', 'Countess', 'Lady', 'Dona'], 'Mrs', inplace=True) data['Title'].replace(['Capt', 'Col', 'Major', 'Dr', 'Rev'], 'Officer', inplace=True) data['Title'].replace(['Jonkheer', 'Don', 'Sir'], 'Royalty', inplace=True) # 数值化 data.loc[data['Sex'] == 'male', 'Sex'] = 0 data.loc[data['Sex'] == 'female', 'Sex'] = 1 data['Embarked'] = data['Embarked'].fillna('S') data.loc[data['Embarked'] == 'S', 'Embarked'] = 0 data.loc[data['Embarked'] == 'C', 'Embarked'] = 1 data.loc[data['Embarked'] == 'Q', 'Embarked'] = 2 data['Title'] = pd.Categorical(data['Title']) data['Title'] = data['Title'].cat.codes return data train_data = preprocess_data(train_data) test_data = preprocess_data(test_data) # 特征选择 features = ['Pclass', 'Sex', 'Age', 'SibSp', 'Parch', 'Fare', 'Embarked', 'FamilySize', 'IsAlone', 'Title'] selector = SelectKBest(f_classif, k=5) selector.fit(train_data[features], train_data['Survived']) selected_features = train_data.columns[selector.get_support()].tolist() # 划分训练集和验证集 train_features, val_features, train_labels, val_labels = train_test_split(train_data[selected_features], train_data['Survived'], test_size=0.2) # 特征标准化 scaler = StandardScaler() train_features_scaled = scaler.fit_transform(train_features) val_features_scaled = scaler.transform(val_features) test_features_scaled = scaler.transform(test_data[selected_features]) # 创建决策树模型并进行训练 clf = DecisionTreeClassifier() clf.fit(train_features_scaled, train_labels) # 在验证集上进行测试 val_pred = clf.predict(val_features_scaled) val_acc = accuracy_score(val_labels, val_pred) print('Validation accuracy:', val_acc) # 在测试集上进行测试 test_pred = clf.predict(test_features_scaled) test_acc = accuracy_score(label_data['Survived'], test_pred) print('Test accuracy:', test_acc) ``` 其中,我们首先对训练集和测试集进行数据预处理,包括缺失值处理、特征工程和数值化。接着,我们使用 SelectKBest 方法进行特征选择,选取 k 个最相关的特征。然后,我们使用 train_test_split 函数划分训练集和验证集,并对特征进行标准化处理。接着,我们创建决策树模型并对训练集进行训练,然后在验证集上进行测试,计算验证集上的准确率。最后,我们在测试集上进行测试,计算测试集上的准确率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值