我在一個資料框中有三欄
我有三列資料框架
我有三列資料框架
創建三個新的欄目:
Cal_Yr - 壓延年份
Str_Date - 日期的開始
End_Date - 日期的結束
如果入學年份小于2015年,比
Str_Date = 01-01-2015 else DoA
End_Date = 15-03-2015
我把這一年分成兩部分......。一部分在周年紀念日之前(該年的起始日期為dd-mm),另一部分在周年紀念日之后,這樣我就可以找到這兩部分的權重......但是2015年1月1日之前的日期應該被重新歸為2015年1月1日
。我必須設計一個回圈,創建重復的12行,如圖所示。

輸入表是:
| ID | DoA | 狀態 | DoL | 期限(年) | fee amt | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| A23 | 02-Jan-16 | 02-Jan-16 | DH | DH | 18-Aug-18 | 18年8月18日 | 2 | 2 | 2345 | B23 |
| B23 | 01-Mar-09 | 01-Mar-09 | IS | IS | 31-Dec-20 | 31-Dec-20 | 11 | 11 | 1000 | C23 |
| C23 | 16-Sep-12 | 16-Sep-12 | SU | SUV | 12-Jul-19 | 12-Jul-19 | 7 | 7 | 14565 | D23 |
| D23 | 01-Jun-20 | 01-Jun-20 | LA | LA | 07-Sep-20 | 07-Sep-20 | 0 | 0 | 123 | E23 |
| E23 | 15-Sep-16 | 15-Sep-16 | IS | IS | 31-Dec-20 | 31-Dec-20 | 4 | 4 | 6790?
| F23 |
| F23 | 01-Jan-19 | 01-Jan-19 | IS | 31-Dec-20 | 31-Dec-20 | 1 | 7272 |
uj5u.com熱心網友回復:
這能滿足你的要求。 這并不是一件難事;就像大多數類似的任務一樣,你只需要一步步來。 "我在這里知道什么","我在這里需要什么資訊"? 請注意,我已經將日期轉換為datetime.date物件,假設你想根據日期做一些分析。
import pandas as pd
import datetime
資料 = [
["A001", "15-03-2014", "17-08-2020" ] 。
["A002", "01-06-2018", "01-06-2020"] , "01-06-2020" ]
]
rows = []
for id, stdate, endate in data:
s = stdate.split('-')
startdate = datetime. date(int(s[2]) 。 int(s[1]),int(s[0] ))
s = endate.split('-')
enddate = datetime. date(int(s[2]) 。 int(s[1]),int(s[0] ))
for year in range(startdate.year, enddate.year 1 ) 。
start1 = datetime.date(year,1,1)
anniv = datetime.date(year,startdate.month,startdate.day)
end1 = datetime.date(year,12, 31)
if year != startdate.year:
rows.append( [id, year, start1, anniv] )
if anniv == enddate:
爆發。
if year != enddate.year:
rows.append( [id, year, anniv, end1] )
elif anniv < enddate:
rows.append( [id, year, anniv, enddate] )
df = pd.DataFrame( rows, columns=["ID"/span>, "Cal_Yr"/span>, "Str_date"/span>, "End_date"/span>] )
print( df )
輸出:
ID Cal_Yr Str_date End_date
0 A001 2014 2014 03-15 2014-12-31
1 A001 2015 2015 01-01 2015 03-15
2 A001 2015 2015-03-15 2015-12-31
3 A001 2016 2016 01-01 2016 03-15
4 A001 2016 2016-03-15 2016-12-31
5 A001 2017 2017 01-01 2017 03-15
6 A001 2017 2017-03-15 2017-12-31
7 A001 2018 2018 01-01 2018 03-15
8 A001 2018 2018-03-15 2018-12-31
9 A001 2019 2019 01-01 2019 03-15
10 A001 2019 2019-03-15 2019-12-31
11 A001 2020 2020 01-01 2020 03-15
12 A001 2020 2020-03-15 2020-08-17
13 A002 2018 201806-01 2018-12-31
14 A002 2019 2019 01-01 2019 06-01
15 A002 2019 201906-01 2019-12-3116 A002 2020 2020 01-01 2020 06-01
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/326824.html
標籤:
