我这里有一个培训和测试数据集。与测试集相比,训练集具有更多的唯一的分类值,我想从训练集中筛选出那些实际上只对训练集独占的行
例如,让我们以分类列Frequency
和PaymentMode
为例。训练集的频率有4个唯一值,频率有11个唯一值。但是,对于测试集,我分别有3个和10个唯一值(每列少1个)
for col in data.columns:
if data[col].dtype == "object":
print(col)
print(data[col].unique())
print('')
Frequency
['Monthly' 'Quatrly' 'Half Yearly' 'BI-Monthly']
PaymentMode
['PDC_E' 'PDC' 'Direct Debit' 'Billed' 'ECS' 'Auto Debit' 'SI Reject'
'ECS Reject' 'Cheque' 'PDC Reject' 'Escrow']
for col in valData.columns:
if valData[col].dtype == "object":
print(col)
print(valData[col].unique())
print('')
Frequency
['Monthly' 'Quatrly' 'Half Yearly']
PaymentMode
['PDC_E' 'PDC' 'Billed' 'Direct Debit' 'ECS' 'ECS Reject' 'SI Reject'
'Cheque' 'Auto Debit' 'PDC Reject']
我想要的是从培训集中删除“双月”和“代管”的样本,因为这些是it的专属样本。我尝试过这个,但有一个错误:
data.loc[data[["Frequency", "PaymentMode"]].isin(valData[["Frequency", "PaymentMode"]])]
ValueError: Cannot index with multidimensional key
在pandas中是否有其他方法不单独指定要删除的值
在这种情况下不能使用多列。两个过滤器的组合,要求两个列没有测试中不存在的因素,应该可以工作:
相关问题 更多 >
编程相关推荐