python - 从整个熊猫数据框中减去修复日期 - python
问题描述
我有数据
customer_id purchase_amount date_of_purchase
0 760 25.0 06-11-2009
1 860 50.0 09-28-2012
2 1200 100.0 10-25-2005
3 1420 50.0 09-07-2009
4 1940 70.0 01-25-2013
5 1960 40.0 10-29-2013
6 2620 30.0 09-03-2006
7 3050 50.0 12-04-2007
8 3120 150.0 08-11-2006
9 3260 45.0 10-20-2010
10 3510 35.0 04-05-2013
11 3970 30.0 07-06-2007
12 4000 20.0 11-25-2005
13 4180 20.0 09-22-2010
14 4390 30.0 04-15-2011
15 4750 60.0 02-12-2013
16 4840 30.0 10-14-2005
17 4910 15.0 12-13-2006
18 4950 50.0 05-19-2010
19 4970 30.0 01-12-2006
20 5250 50.0 12-20-2005
现在我想01-01-2016
从每一行中减去date_of_purchase
我尝试了以下方法,所以我应该有一个新的专栏days_since
,有几天。
NOW = pd.to_datetime('01/01/2016').strftime('%m-%d-%Y')
gb = customer_purchases_df.groupby('customer_id')
df2 = gb.agg({'date_of_purchase': lambda x: (NOW - x.max()).days})
任何建议。我怎么能做到这一点
提前致谢
解决方案
pd.to_datetime(df['date_of_purchase']).rsub(pd.to_datetime('2016-01-01')).dt.days
0 2395
1 1190
2 3720
3 2307
4 1071
5 794
6 3407
7 2950
8 3430
9 1899
10 1001
11 3101
12 3689
13 1927
14 1722
15 1053
16 3731
17 3306
18 2053
19 3641
20 3664
Name: date_of_purchase, dtype: int64
推荐阅读
- ios - 错误域 = NSCocoaErrorDomain 代码 = 3840 “无值。” UserInfo={NSDebugDescription=No value.} 图片上传
- java - 在较高版本中运行 java 代码,在较低 java 版本中编译
- perl - 使用 perl 从 sql join 获取结果
- abap - 检查表 Y 中是否存在列 X
- javascript - 如何附加到按 ID 过滤的 IndexedDB 中的数组?
- amazon-web-services - AWS EC2 无法通过 SSH 连接到 Elastic Beanstalk 创建的 EC2
- angular5 - 如何在 Angular TypeScript 中使用 ACE 编辑器突出显示每一行?
- c++ - 列表需要类类型
- javascript - 获取具有相同类但带有过滤器的 div 的内部文本
- rxjs - RxJS:forkJoin 合并映射