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将上述代码改写,功能不变
时间: 2023-09-03 09:08:49 浏览: 102
brazilian_coffee_dataset.zip_coffee_dataset (1)_coffee数据集_deep l
可以将上述代码改写为:
```
def get_dataset(field):
dataset = pd.DataFrame(field).copy()
if 'Date' in dataset.columns:
dataset = dataset.drop(['Merchant_id', 'Discount_rate', 'Date', 'date_received', 'date'], axis=1)
if 'label' in dataset.columns:
label = dataset['label'].tolist()
dataset = dataset.drop(['label'], axis=1)
dataset['label'] = label
else:
dataset = dataset.drop(['Merchant_id', 'Discount_rate', 'date_received'], axis=1)
dataset[['User_id', 'Coupon_id', 'Date_received', 'Distance']] = dataset[['User_id', 'Coupon_id', 'Date_received', 'Distance']].astype(int)
if 'label' in dataset.columns:
dataset['label'] = dataset['label'].astype(int)
dataset = dataset.drop_duplicates(keep='first').reset_index(drop=True)
return dataset
```
这里的改动包括:
- 将 `if 'Date' in dataset.columns.tolist()` 改为 `if 'Date' in dataset.columns`,因为 `dataset.columns` 已经是一个列表了。
- 将 `dataset.drop(['Merchant_id', 'Discount_rate', 'Date', 'date_received', 'date'], axis=1, inplace=True)` 改为 `dataset = dataset.drop(['Merchant_id', 'Discount_rate', 'Date', 'date_received', 'date'], axis=1)`,因为 `drop` 方法的 `inplace` 参数默认为 `False`,需要将返回值重新赋给 `dataset`。
- 将对 `User_id`、`Coupon_id`、`Date_received` 和 `Distance` 属性的转换方式改为 `dataset[['User_id', 'Coupon_id', 'Date_received', 'Distance']] = dataset[['User_id', 'Coupon_id', 'Date_received', 'Distance']].astype(int)`,可以一次性将四列转换成整型。
- 将对 `label` 属性的转换方式改为 `dataset['label'] = dataset['label'].astype(int)`。
- 将 `dataset.index = range(len(dataset))` 改为 `dataset = dataset.reset_index(drop=True)`,可以更简单地重置索引。
阅读全文