时间序列累积和的 Pythonic 代码

标签 python pandas datetime python-datetime

我有一个 pandas 数据框,其中的 Date_of_Purchase 列包含许多 datetime 值:

dop_phev = rebates[rebates['Vehicle_Type']=='Plug-in Hybrid']['Date_of_Purchase']
dop_phev

输出:

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 与日期 x 的关系图。我开始研究一个解决方案,我循环遍历每个日期并计算所有小于该日期的日期,但这绝对是一个“非Pythonic”解决方案。我怎样才能用Pythonic代码完成这个任务?

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

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)

这不太有效...

仅供引用,我正在学习this dataset关于电动汽车的折扣。您可以在我的 GitHub 存储库 here 上找到数据的 CSV .

最佳答案

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

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()

关于时间序列累积和的 Pythonic 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46969496/

相关文章:

python - sklearn-KN​​eighborsClassifier-值错误: Unknown label type: 'continuous'

python - 当我尝试使用 Python 进行网络抓取表格时,为什么要乘以文本?

python - 如何按特定列分配新的值列?

javascript - 根据日期/时间有条件地运行代码

php - 在 PHP 中模拟不同的服务器日期时间

sql - 按周对 SQL 结果进行分组并指定 "week-ending"天

python - FreeSwitch - 我如何使用 python 解析和采取行动?

python - 为什么我不能分配给 Pandas DataFrame 的一部分?

python - 如何从select语句中批量调用数据并追加到dataframe中?

python - 在 Dataframe 中删除行时出现 IndexError