获取两个日期熊猫之间的周数

时间:2017-06-14 14:09:50

标签: python date pandas datetime dataframe

我有一个基本的代码片段,我需要在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 days,而不是366

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

1 个答案:

答案 0 :(得分:1)

我想你忘了.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