python - 如何使用一个月内的日期范围提取特征?
问题描述
我想从日期时间列中提取日期/日期的特征,例如在第 1 天到第 10 天之间,输出存储在名为
early_month 为 1 或 0 否则。
我之前发布的以下问题为我提供了一个使用 indexer_between_time 的解决方案,以便使用时间范围。
我正在使用以下代码从日期中提取月份中的日期。
df["date_of_month"] = df["purchase_date"].dt.day
谢谢你。
解决方案
从您的问题中不清楚,但是如果您尝试创建一个包含 1 的列(如果日期介于 1 和 10 之间,否则为 0),这非常简单:
df['early_month'] = df['date_of_month'].apply(lambda x: 1 if x <= 10 else 0)
df['mid_month'] = df['date_of_month'].apply(lambda x: 1 if x >= 11 and x <= 20 else 0)
作为一个 python 初学者,如果你宁愿避免使用 lambda 函数,你可以通过创建一个函数然后应用它来获得相同的结果:
def create_date_features(day, min_day, max_day):
if day >= min_day and day <= max_day:
return 1
else:
return 0
df['early_month'] = df['date_of_month'].apply(create_date_features, min_day=1, max_day=10)
df['mid_month'] = df['date_of_month'].apply(create_date_features, min_day=11, max_day=20)
推荐阅读
- javascript - 传递 axios 数据到视图模板
- bash - 将字符串添加到bash中的列
- xojo - 更改列表框单元格的背景颜色
- php - 在 PHP 中添加“插入”查询的位置
- python-3.x - 为什么写入文件二进制方法有时会返回一个字母和其他一个十六进制?
- javascript - Url 改变了,但是当我们返回时组件不会改变
- angular - ExpressionChangedAfterItHasBeenCheckedError 的原因“检查后表达式已更改”
- java - 如何使用数据表验证同一页面中的所有元素
- elasticsearch - 具有多个索引的弹性搜索大小选项
- python - 如何从最后 5 行获取匹配错误字符串?