为什么'Merchant_id', 'Discount_rate', 'Date', 'date_received', 'date'是无用属性
时间: 2023-12-28 13:04:01 浏览: 26
'Merchant_id', 'Discount_rate', 'Date', 'date_received', 'date'这些属性是无用属性的原因如下:
- 'Merchant_id':商家ID,不应该对用户优惠券使用行为产生影响;
- 'Discount_rate':折扣率,是优惠券的属性,也不应该对用户的使用行为产生影响;
- 'Date':用户使用优惠券的日期,是要预测的标签,应该从特征中删除;
- 'date_received':用户领取优惠券的日期,与用户的使用行为无关,不应该对预测产生影响;
- 'date':这里的具体含义不太清楚,但从代码中可以看出,这个属性也与用户的使用行为无关,不应该对预测产生影响。
因此,在构造数据集时,将这些属性从数据集中删除。
相关问题
AttributeError: 'DataFrame' object has no attribute 'merchant_id'
AttributeError: 'DataFrame' object has no attribute 'merchant_id' 是一个错误提示,意味着在一个DataFrame对象上尝试访问名为'merchant_id'的属性时出错。这通常发生在以下情况下:
1. DataFrame对象中确实没有名为'merchant_id'的属性。请确保你的DataFrame对象中包含名为'merchant_id'的列或属性。你可以使用`df.columns`属性来查看DataFrame对象中的所有列。
2. 可能是由于拼写错误导致的。请检查你是否正确地输入了属性名'merchant_id'。
3. DataFrame对象可能是空的,没有任何列或属性。在访问属性之前,请确保DataFrame对象中至少有一列或属性。
解决此错误的方法取决于你的具体情况。如果你确定DataFrame对象中应该有'merchant_id'属性,但出现了此错误,请检查拼写和数据的完整性。如果DataFrame对象确实没有'merchant_id'属性,你可以考虑使用其他列或属性来替代。
相关问题:
1. DataFrame是什么?如何创建一个DataFrame对象?
2. 如何访问DataFrame对象中的列?
3. 如何检查DataFrame对象是否为空?
4. 有哪些常见的DataFrame操作和方法?
def get_dataset(field):#构造数据集 dataset=pd.DataFrame(field).copy() # 删除无用属性并将label置于最后一列 if 'Date' in dataset.columns.tolist(): dataset.drop(['Merchant_id', 'Discount_rate', 'Date', 'date_received', 'date'], axis=1, inplace=True) label = dataset['label'].tolist() dataset.drop(['label'], axis=1, inplace=True) dataset['label'] = label else: dataset.drop(['Merchant_id', 'Discount_rate', 'date_received'], axis=1, inplace=True) dataset['User_id'] = dataset['User_id'].map(int) dataset['Coupon_id'] = dataset['Coupon_id'].map(int) dataset['Date_received'] = dataset['Date_received'].map(int) dataset['Distance'] = dataset['Distance'].map(int) if 'label' in dataset.columns.tolist(): dataset['label'] = dataset['label'].map(int) dataset.drop_duplicates(keep='first', inplace=True) dataset.index = range(len(dataset)) return dataset降重改写
这个函数是用来构造数据集的,它首先复制了传入的参数 field,然后删除了一些无用的属性,并将标签置于最后一列。如果数据集中包含 Date 列,则删除 Merchant_id、Discount_rate、Date、date_received 和 date 这些属性,并将标签单独提出来。如果数据集中不包含 Date 列,则删除 Merchant_id、Discount_rate 和 date_received 这些属性。接下来,将 User_id、Coupon_id 和 Date_received 这几列属性转换成整型,并将 Distance 属性也转换成整型。如果数据集中含有标签属性,则将其转换成整型。最后,去除数据集中的重复记录,并重置索引。函数返回处理好的数据集。