Pyspark DF 带有从今天开始的日期列表(PANDAS)返回 1 年
Pyspark DF with a list of dates (with PANDAS) from today BACK 1 year
大家早上好,
我正在尝试创建一个 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')]
大家早上好,
我正在尝试创建一个 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')]