python - 计算从年/月开始到今天的天数
问题描述
假设我们有一个数据框(df):
opendate
2020-08-04
2018-06-24
2011-03-17
2019-11-20
我想做两件事:
- 对于每个日期,计算从特定年份开始到该日期的天数
- 对于每个日期,计算从特定月份开始到该日期的天数
在 R 中,我可以通过以下代码执行此操作:
Year_Month_Diff <- function(x, start) as.numeric(x - as.Date(cut(start, "year")));
df = transform(df, Year_day_played = Year_Month_Diff(opendate, opendate));
Month_Diff <- function(x, start) as.numeric(x - as.Date(cut(start, "month")));
df= transform(df, Month_day_played = Month_Diff(opendate, opendate));
任何对 python 等价物的帮助将不胜感激。
解决方案
月份真的很简单,只要打电话.dt.day
。
对于年份的情况,您从同年的 1 月 1 日减去日期,然后计算天数。
假设opendate
已经是类型Timestamp
:
df['Days since BOM'] = df['opendate'].dt.day
df['Days since BOY'] = (df['opendate'] - (df['opendate'] - pd.tseries.offsets.YearBegin())).dt.days
感谢@ChrisA,对于 year 案例有一个更简单的解决方案:
df['Days since BOY'] = df['opendate'].dt.dayofyear
推荐阅读
- unity3d - 无法在 Unity 中更改边缘对撞机的点
- r - 如何将名称不为 NULL 的列表传递给 r 中的 do.call 的参数
- javascript - 在 NodeJS/Express 中访问本地存储的文件
- python - 将大约 20 个表从 BigQuery 传输到 MongoDB 时出现“chunkedEncodingError,连接断开:OSError 104”(通过 Python)
- python-3.x - 0 升级,0 新安装,0 删除,1 未升级。不升级(ubuntu 20.04)
- python - 将 curl cmd 更改为 python
- javascript - 我应该如何使用 JS?
- amazon-web-services - AWS 管理控制台菜单和权限
- reactjs - 检查另一个功能组件的状态
- reactjs - 为什么我的水平 ScrollView 不起作用?