python - 带有日期列表的 Pyspark DF(使用 PANDAS)从今天开始 BACK 1 年
问题描述
大家早,
我正在尝试创建一个 Pyspark DF,其中包含从今天开始 1 年的日期列表。
到目前为止,我可以从今天开始使用这个列表
import pandas as pd
dates = pd.date_range(pd.datetime.today(), periods=365).tolist()
dates = list(map(pd.Timestamp.to_pydatetime, dates))
dates_df = spark.createDataFrame(dates, T.TimestampType())
但它给了我
value
2018-08-01
2018-08-02
...
2019-08-02
我试过了
dates ['new_value'] = dates['value'].apply(lambda x: x - pd.DateOffset(years=1))
但是不行……我真正想要的是
value
2018-08-01
2018-07-31
...
2017-07-21
想法?
解决方案
将您设置pd.date_range
为在当天结束,并保持您的月经相同,然后只需反转系列:
dates = pd.date_range(end=pd.datetime.today(), periods=365).tolist()[::-1]
输出:
[Timestamp('2018-07-31 23:06:54.977885', freq='D'),
Timestamp('2018-07-30 23:06:54.977885', freq='D'),
Timestamp('2018-07-29 23:06:54.977885', freq='D'),
Timestamp('2018-07-28 23:06:54.977885', freq='D'),
Timestamp('2018-07-27 23:06:54.977885', freq='D')
...
Timestamp('2017-08-05 23:06:54.977885', freq='D'),
Timestamp('2017-08-04 23:06:54.977885', freq='D'),
Timestamp('2017-08-03 23:06:54.977885', freq='D'),
Timestamp('2017-08-02 23:06:54.977885', freq='D'),
Timestamp('2017-08-01 23:06:54.977885', freq='D')]
推荐阅读
- javascript - 如何创建一个左上角和右下角为 45 度直角的按钮?
- angular - 如何将订阅者的结果添加到对象数组的属性中
- r - 有没有办法从最近编写的文档(html、pdf 或 Word)中获取 R Markdown 文档?
- react-native - 是否可以使用 react-native 构建复杂的动画
- reactjs - 如何在 FastAPI 后端提供 React 构建的前端?
- java - JOOQ如何自我加入
- javascript - 使用 React Js 和 Gatsby 添加谷歌地图
- html - 推送到 AWS 后部分 HTML 和 CSS 丢失
- javascript - Angular:意外的令牌。需要构造函数、方法、访问器或属性
- python - Python getopt - 如何检查不同可能的参数组合?