用python实现以下功能,将原始数据划分成训练数据和测试数据,其中原始数据中有一列不参与建模,最后分别保存训练数据和测试数据,并带上不参与建模的那一列
时间: 2024-02-24 09:53:05 浏览: 68
好的,我可以帮你实现这个功能。假设原始数据为一个csv文件,其中第一列是不参与建模的列,以下是实现代码:
```python
import pandas as pd
from sklearn.model_selection import train_test_split
# 读取原始数据
data = pd.read_csv('raw_data.csv')
# 划分训练集和测试集
train_data, test_data = train_test_split(data.iloc[:, 1:], test_size=0.2, random_state=42)
# 将不参与建模的列加到训练集和测试集中
train_data.insert(loc=0, column='non-model-col', value=data.iloc[train_data.index, 0])
test_data.insert(loc=0, column='non-model-col', value=data.iloc[test_data.index, 0])
# 保存训练集和测试集
train_data.to_csv('train_data.csv', index=False)
test_data.to_csv('test_data.csv', index=False)
```
上述代码中,首先使用pandas库读取原始数据。然后使用train_test_split函数将原始数据划分为训练集和测试集,其中test_size参数指定测试集所占比例,random_state参数指定随机种子以保证每次运行结果一致。接着使用insert函数将不参与建模的列加到训练集和测试集中,并指定其位置为第一列。最后使用to_csv函数将训练集和测试集保存为csv文件,其中index=False表示不保存行索引。
阅读全文