首页 > 解决方案 > 如何使用一个月内的日期范围提取特征?

问题描述

我想从日期时间列中提取日期/日期的特征,例如在第 1 天到第 10 天之间,输出存储在名为

early_month 为 1 或 0 否则。

我之前发布的以下问题为我提供了一个使用 indexer_between_time 的解决方案,以便使用时间范围。

如何使用时间范围提取特征?

我正在使用以下代码从日期中提取月份中的日期。

df["date_of_month"] = df["purchase_date"].dt.day

谢谢你。

标签: pythonpython-3.xpandasfeature-extraction

解决方案


从您的问题中不清楚,但是如果您尝试创建一个包含 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)

推荐阅读