gpt4 book ai didi

python - 获取两个日期 Pandas 之间的周数

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:47 25 4
gpt4 key购买 nike

我有一个基本的代码片段,我需要在 pandas 中重新创建:

import datetime as dt
date1 = dt.date(2016,10,10)
date2 = dt.date.today()
print('Week#', round((date2 - date1).days / 7 +.5))
# output: Week# 36

我有一个 datetime64[ns] 数据类型列,但我无法破解它。使用这个基本示例我很难过:

import pandas as pd
import numpy as np
import datetime as dt
dfp = pd.DataFrame({'A' : [dt.date(2016,10,6)]})
dfp['A'] = pd.to_datetime(dfp['A'])

def week(col):
print((col.dt.date - dt.date(2015, 10, 6)))

week(dfp['A']) #output: 366 days

当我尝试重新创建周数计算时,我遇到了多个错误:print((col.dt.date - dt.date(2015, 10, 6)).days) 返回 AttributeError: 'Series' object has no attribute 'days'

我想尝试自己解决这个问题,以便从痛苦中吸取教训。

如何根据“天数”或作为 int 返回 pandas 列值,就像在第一个代码片段中使用第一个计算一样? (即,不是 366 天,只是 366)

如果您喜欢冒险,我怎样才能以更有效的方式获得 Week# xxx 输出?

最佳答案

我想你忘记了.dt:

dfp = pd.DataFrame({'A' : [date2]})
dfp['A'] = pd.to_datetime(dfp['A'])
print (dfp)

print (((dfp['A'].dt.date - dt.date(2016, 10, 10)).dt.days / 7 + .5).round().astype(int))
0 36
Name: A, dtype: int32

关于python - 获取两个日期 Pandas 之间的周数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44547203/

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