如何合并和分离测试和训练数据进行数据清洗?

数据挖掘 Python 数据集 熊猫 数据框 python-3.x
2022-02-12 14:39:13

我正在研究一个 ML 模型,在该模型中,我以 2 个文件test.csvtrain.csv. 我想对两个文件一起执行数据清理,将它们连接起来,然后将它们分开。

我知道如何连接 2 个数据帧,但是在数据清理之后,我将如何分离这两个文件?请帮我完成代码。

代码

test = pd.read_csv('test.csv')
train = pd.read_csv('train.csv')

df = pd.concat([test, train])

//Data Cleaning steps

//Separating them back to train and test set for providing input to model
4个回答

在连接两个数据框时添加一个指示符列,以便您以后可以再次将它们分开:

df = pd.concat([test.assign(ind="test"), train.assign(ind="train")])

然后稍后您可以再次拆分它们:

test, train = df[df["ind"].eq("test")], df[df["ind"].eq("train")]

有几种方法可供选择。如果您坚持连接两个数据帧,则首先向每个名为source. test.csv“测试”和训练集设置值。

清理完合并后df,再使用源列再次拆分数据。

另一种方法是记录您在训练集上执行的所有操作,然后简单地重复测试集。如果您根据人口对值进行标准化,这将不起作用。

方法一:开发一个函数,做一组数据清洗操作。然后通过火车和测试或任何你想通过该功能清理的东西。结果将是一致的。

方法2:如果要连接,那么一种方法是为测试数据集添加“test”列,为训练数据集添加“train”列。执行您的操作,然后使用 python split 再次将其划分为 2 个数据帧

data[data['type']=="test"]

在连接测试和训练数据之前。添加新列来训练和测试称为类型的数据。并在预处理后根据列类型将它们分开。这是一个示例代码。

test = pd.read_csv('test.csv')
train = pd.read_csv('train.csv')

test['type'] = "test"
train['type'] = "train"

df = pd.concat([test, train])

preprocess(df)

df.drop(['type'],axis = 1,inplace = True)

train = df[df['type'] == "train"]

test = df[df['type'] == "test"]