gpt4 book ai didi

python - to_datetime() 的奇怪行为

转载 作者:行者123 更新时间:2023-12-03 20:18:27 25 4
gpt4 key购买 nike

我在这里过得很艰难。

我的 DataFrame 看起来像这样

     Purchase_Date     Customer_ID  Gender  
0 2012-12-18 00:00:00 7223 F
1 2012-12-20 00:00:00 7841 M
2 2012-12-21 00:00:00 8374 F

我的目标是将“购买日期”列从字符串更改为日期时间对象,以便我可以通过对其应用此函数来运行同期群分析:

      def get_month(x): return dt.datetime(x.year, x.month, 1)
data['InvoiceMonth'] = data['Purchase_Date'].apply(get_month)
grouping = data.groupby('Customer_ID')['InvoiceMonth']
data['CohortMonth'] = grouping.transform('min')

函数返回错误:“str”对象没有属性“year”我尝试了以下函数并使用了所有参数(dayfirst、yearfirst ...)

data["Purchase_Date"] = pd.to_datetime(data["Purchase_Date"])
pd.to_datetime()
datetime.datetime.strptime()

我不断收到 ValueError: day is out of range for month

请帮忙

最佳答案

所以,你快到了:

data["Purchase_Date"] = pd.to_datetime(data["Purchase_Date"])
data['InvoiceMonth'] = data["Purchase_Date"].dt.strftime("%Y-%m-01")

(以 object 格式输出月份 - 您可以通过添加 pd.to_datetime(...) 将其转换为 datetime)

或者 - 使用您的方法:

data["Purchase_Date"] = pd.to_datetime(data["Purchase_Date"])

import datetime as dt

def get_month(x): return dt.datetime(x.year, x.month, 1)

data['InvoiceMonth'] = data["Purchase_Date"].apply(get_month)

(将月份输出为datetime)

两者都会返回,但我强烈推荐第一个选项:

  Purchase_Date  Customer_ID Gender InvoiceMonth
0 2012-12-18 7223 F 2012-12-01
1 2012-12-20 7841 M 2012-12-01
2 2012-12-21 8374 F 2012-12-01

关于python - to_datetime() 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61563994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com