我正在做一些机器学习,我需要将我的火车和测试装置结合起来,以确保我对它们的处理方式相同,但我无法以简单的方式完成这项工作并将其取回。
#combine data sets
df = pd.concat([df_train,df_test],keys=['train','test'])
#This is where I would do stuff but for testing I don't
#reextract original
train=df.loc['train',:]
test=df.loc['test',:]
#check for equality
df_train.equals(train)
这会返回false,我无法理清原因。 df_train和火车的形状相同。
我试图运行
df_train = df_train.fillna(0)
df_test = df_test.fillna(0)
之前确保它不是nulls的问题
修改
函数concat将列的类型从int更改为float。不知道为什么,但现在我知道为什么我的断言语句失败了我可以安全地运行代码。
如果有更好的方法可以做到这一点我会接受答案。对于古玩,我需要组合我的数据集的原因是我可以扩展和操作我的数据,而不会偏向火车或测试集。