按 datediff 细分数据

问题描述 投票:0回答:1

这里的 Python 经验不是很丰富,并尝试在 _max_date 和 _start_date 之间通过 datediff 分割 df

我理想地希望创建一个新列同类群组,以便我可以分别分组和分析。

下面是我的代码不起作用:

_max_date = datetime.strptime('YYYY-mm-dd',"%Y-%m-%d")

df.loc[(abs((_max_date - df.Start_date).days)) <= 90, 'Cohort'] = '0-3M'

依此类推3-6M6-9M9-12M

对此有什么帮助吗?

python datediff
1个回答
0
投票

第二行应该没问题,如果它不起作用,我认为您的数据未设置为 Pandas Timestamp 格式。这有效:

from datetime import datetime
import pandas as pd

_max_date = datetime(2024, 2, 1)
df = pd.DataFrame([
    (datetime(2024, 2, 15), ),
    (datetime(2021, 2, 15), ),
], columns=['Start_date'])

df.loc[(abs((_max_date - df.Start_date).dt.days)) <= 90, 'Cohort'] = '0-3M'
print(df)

输出:

  Start_date Cohort
0 2024-02-15   0-3M
1 2021-02-15    NaN

(未来注意:如果您发布完整的最小工作代码示例,会更容易获得答案。)

© www.soinside.com 2019 - 2024. All rights reserved.