def get_label_features_of_date(label_field): """提取标记区间日期相关特征""" # 源数据 data = label_field.copy() data['Coupon_id'] = data['Coupon_id'].map(int) # 将Coupon_id列中float类型的元素转换为int类型,因为列中存在np.nan即空值会让整列的元素变为float data['Date_received'] = data['Date_received'].map(int) # 将Date_received列中float类型的元素转换为int类型,因为列中存在np.nan即空值会让整列的元素变为float # 返回的特征数据集 features = data.copy() features['Week_received'] = features['date_received'].map(lambda x: x.isoweekday()) # 星期几,星期一为1,星期天为7 features['is_weekend_reveived'] = features['Week_received'].map(lambda x: 1 if x == 6 or x == 7 else 0) # 判断领券日是否为休息日 features['Month_received'] = features['date_received'].map(lambda x: x.month)# 月份 features = pd.concat([features, pd.get_dummies(features['Week_received'], prefix='Week_received')], axis=1) # one-hot离散星期几 features.index = range(len(features)) # 重置index # 返回 return features改写代码,功能不变
时间: 2024-04-03 18:31:28 浏览: 14
def get_label_features_of_date(label_field):
# 源数据
data = label_field.copy()
data['Coupon_id'] = data['Coupon_id'].astype(int) # 将Coupon_id列中float类型的元素转换为int类型
data['Date_received'] = data['Date_received'].astype(int) # 将Date_received列中float类型的元素转换为int类型
# 返回的特征数据集
features = data.copy()
features['Week_received'] = features['Date_received'].apply(lambda x: x.isoweekday()) # 星期几,星期一为1,星期天为7
features['is_weekend_reveived'] = features['Week_received'].apply(lambda x: 1 if x in [6, 7] else 0) # 判断领券日是否为休息日
features['Month_received'] = features['Date_received'].apply(lambda x: x.month) # 月份
features = pd.concat([features, pd.get_dummies(features['Week_received'], prefix='Week_received')], axis=1) # one-hot离散星期几
features.reset_index(drop=True, inplace=True) # 重置index
# 返回
return features