目前我有A表,然后再A表上划分训练集和测试集,代码如下:
data = pd.read_excel(r'C:\\Users\\bingfeng\\Desktop\\多光谱波段数据\\A.xlsx', header=1)
X = data.iloc[:, 1:] # 特征
y = data.iloc[:, 0] # 标签
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=12)
我的问题是
我有A表(2022年)、B表(2023年),我想将A表为训练集,B表为测试集,如何写python代码
假设A表和B表的数据结构相同,可以按照以下步骤进行:
import pandas as pd
# 读取A表和B表
df_a = pd.read_excel(r'C:UsersbingfengDesktop多光谱波段数据A.xlsx', header=1)
df_b = pd.read_excel(r'C:UsersbingfengDesktop多光谱波段数据B.xlsx', header=1)
from sklearn.model_selection import train_test_split
# 将A表的数据作为训练集,B表的数据作为测试集
df_train = df_a
df_test = df_b
# 将A表和B表合并
df = pd.concat([df_a, df_b], ignore_index=True)
# 划分数据为训练集和测试集,比例为6:4
X_train, X_test, y_train, y_test = train_test_split(df.iloc[:, 1:], df.iloc[:, 0], test_size=0.4, random_state=12)
注意,这里使用了concat函数的ignore_index参数,将合并后的数据的索引重新编号,避免出现重复索引的问题。