【发布时间】:2017-11-16 17:59:03
【问题描述】:
我有一个基本代码 sn-p,需要在 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 列值,例如使用第一个代码 sn-p 中的第一个计算? (即,而不是366 days,只是366)
如果您喜欢冒险,我怎样才能以更有效的方式获得Week# xxx 输出?
【问题讨论】:
标签: python date pandas datetime dataframe