首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时间序列累积和的Pythonic码

时间序列累积和的Pythonic码
EN

Stack Overflow用户
提问于 2017-10-27 07:14:55
回答 1查看 388关注 0票数 1

我有一个带有多个Date_of_Purchase值的datetime列的熊猫数据文件:

代码语言:javascript
复制
dop_phev = rebates[rebates['Vehicle_Type']=='Plug-in Hybrid']['Date_of_Purchase']
dop_phev

输出:

代码语言:javascript
复制
0     2015-07-20
1     2015-07-20
3     2015-07-20
4     2015-07-24
5     2015-07-24
     ...    
502   2017-09-16
503   2017-09-18
504   2017-06-14
505   2017-09-21
506   2017-09-22
Name: Date_of_Purchase, Length: 383, dtype: datetime64[ns]`

我想做一个累积购买计划,y,vs date,x。我开始研究一个解决方案,在这个解决方案中,我循环遍历每个日期,并计算所有日期少于那个日期的日期,但这绝对是一个“非pythonic”解决方案。我怎样才能用节奏曲来完成这个任务呢?

编辑:我不确定它到底是什么样子,但这是我目前的解决方案:

代码语言:javascript
复制
dop_phev = rebates[rebates['Vehicle_Type']=='Plug-in Hybrid']['Date_of_Purchase']
cum_count = np.zeros(len(dop_phev.unique()))
for i, date in enumerate(dop_phev.unique()):
    cum_count[i] = sum(dop_phev<date)
plt.plot(dop_phev.unique(),cum_count)

这不太管用..。

作为参考,我正在研究电动汽车回扣的此数据集。您可以在我的GitHub repo 这里上找到数据的CSV。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-27 07:40:02

您可以使用Series.groupby,然后使用Series.plot

代码语言:javascript
复制
dop_phev = dop_phev.groupby(dop_phev).apply(lambda x: sum(dop_phev<x.name))
print (dop_phev)
2015-07-20    0
2015-07-24    3
2017-06-14    5
2017-09-16    6
2017-09-18    7
2017-09-21    8
2017-09-22    9
Name: Date_of_Purchase, dtype: int64

dop_phev.plot()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46969496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档