我正在嘗試解決這個要求,我需要以周為單位增加日期,下面是相同的代碼:
import pandas as pd
import numpy as np
c=15
s={'week':[1,2,3,4,5,6,7,8],'Sales':[10,20,30,40,50,60,70,80]}
p=pd.DataFrame(data=s)
p['week'] =p['week'].apply(
lambda x: datetime.datetime.strptime(f'2021-{x:02}-1', '%Y-%U-%u')
)
O/P-

我如何能夠從周列的最后一行遞增到下一個 15 周?
基本上,每周所需的輸出從2022-03-01接下來的 14 周開始。
uj5u.com熱心網友回復:
一種選擇是用于date_range生成額外的日期,然后使用set_index reindex附加它們:
p = p.set_index('week').reindex(pd.date_range('2021-01-04', periods=8 14, freq='W-MON')).rename_axis(['week']).reset_index()
輸出:
week Sales
0 2021-01-04 10.0
1 2021-01-11 20.0
2 2021-01-18 30.0
3 2021-01-25 40.0
4 2021-02-01 50.0
5 2021-02-08 60.0
6 2021-02-15 70.0
7 2021-02-22 80.0
8 2021-03-01 NaN
9 2021-03-08 NaN
10 2021-03-15 NaN
11 2021-03-22 NaN
12 2021-03-29 NaN
13 2021-04-05 NaN
14 2021-04-12 NaN
15 2021-04-19 NaN
16 2021-04-26 NaN
17 2021-05-03 NaN
18 2021-05-10 NaN
19 2021-05-17 NaN
20 2021-05-24 NaN
21 2021-05-31 NaN
uj5u.com熱心網友回復:
您可以使用function 和您的 variable修改weeklist的長度,但您還將檢查 的長度,它必須具有相同數量的元素:range()csales
import pandas as pd
import numpy as np
import datetime
c=15
weeks = list(range(1, c 1))
sales = [10,20,30,40,50,60,70,80]
s={'week':weeks,'Sales':sales [None]*(len(weeks)-len(sales) if (len(weeks)-len(sales)) >=0 else 0)}
p=pd.DataFrame(data=s)
p['week'] =p['week'].apply(
lambda x: datetime.datetime.strptime(f'2021-{x:02}-1', '%Y-%U-%u')
)
print(p)
uj5u.com熱心網友回復:
中的另一個選項DateOffset:
p = pd.concat([p, pd.DataFrame({'week': [p.iloc[-1,0] pd.DateOffset(weeks=i) for i in range(1,c)]})], ignore_index=True)
>>> p
'''
week Sales
0 2021-01-04 10.0
1 2021-01-11 20.0
2 2021-01-18 30.0
3 2021-01-25 40.0
4 2021-02-01 50.0
5 2021-02-08 60.0
6 2021-02-15 70.0
7 2021-02-22 80.0
8 2021-03-01 NaN
9 2021-03-08 NaN
10 2021-03-15 NaN
11 2021-03-22 NaN
12 2021-03-29 NaN
13 2021-04-05 NaN
14 2021-04-12 NaN
15 2021-04-19 NaN
16 2021-04-26 NaN
17 2021-05-03 NaN
18 2021-05-10 NaN
19 2021-05-17 NaN
20 2021-05-24 NaN
21 2021-05-31 NaN
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/464332.html
標籤:Python python-3.x 熊猫 数据框 约会时间
