我有一个如下数据框:DateTaken是日期时间格式
StudentId DateTaken Rating Score
101 2015-09-16 14:04:23 3.6 85
101 2015-10-16 14:21:31 3.2 90
102 2015-10-21 15:13:21 2.0 75
我想创建一个仅将年份和月份组合在一起的列,如:
StudentId DateTaken Rating Score YearMo
101 2015-09-16 14:04:23 3.6 85 2015-09
101 2015-10-16 14:21:31 3.2 90 2015-10
102 2015-10-21 15:13:21 2.0 75 2015-10
我找到了一个使用Group By的解决方法,它让我得到了我的程序所需要但对我而言,解决这个问题的挑战仍然存在。有可能吗?
答案 0 :(得分:1)
见评论.....我没有清楚地使用该字段。我需要保留进行日期计算的能力
我能够用
解决我的问题df['DT2']= df['DateTaken'].values.astype('<M8[M]')
截断我的数据给了我2015-09-01 ..这符合我的目的 谢谢你的帮助
答案 1 :(得分:0)
您可以在列表推导中创建一个值的片段,如下所示:
Stripe_Class
希望这项工作
答案 2 :(得分:0)
最简单的解决方案是使用子字符串:
year_mo = date_taken[0:7]
仅当您的DateTaken
字段的日期一致时才有效。
另一种方法是加载时间戳并将其打印为新格式。
对于这个python-dateutil
是你的朋友。
from dateutil import parser
# this gives you back a datetime object
timestamp_taken = parser.parse(date_taken)
year_mo = timestamp_taken.strftime('%Y-%m')