最近在清洗一些MoringStar的Financials数据报表,有一些关于日期格式的清洗,在这里做一下记录。
数据为列表形式传入,下面就是一些常用的,可以举一反三。
- 将格式为QQ YYYY 转换成 YYYYQQ . 例如 Q4 2022 -> 2022Q4
def Convert_QQspaYYYYToYYYYQQ(DateList): NewYYYYQQList = [] for NoDate in range(0, len(DateList)): dateQQspaYYYY = DateList[NoDate] if ('19' in dateQQspaYYYY) or ('20' in dateQQspaYYYY): qtr = dateQQspaYYYY[-4:] + 'Q' + dateQQspaYYYY[1] NewYYYYQQList.append(qtr) else: NewYYYYQQList.append(dateQQspaYYYY) return NewYYYYQQList
- 格式YYYYMM 转换成 YYYYQQ . 例如 202210 -> 2022Q4
Dic_MonToQtr = {1: 1, 2: 1, 3: 1, 4: 2, 5: 2, 6: 2, 7: 3, 8: 3, 9: 3, 10: 4, 11: 4, 12: 4} def Convert_YYYYMMToYYYYQQ(DateList): NewYYYYQQList = [] for NoDate in range(0, len(DateList)): dateYYYYMM = DateList[NoDate] if ('19' in dateYYYYMM) or ('20' in dateYYYYMM): qtr = dateYYYYMM[:4] + 'Q' + str(Dic_MonToQtr.get(int(dateYYYYMM[-2:]))) print("qtr",qtr) else: qtr = dateYYYYMM NewYYYYQQList.append(qtr) return NewYYYYQQList
- 格式YYYYMM转换成YYYY 例如:202210->2022
def Convert_YYYYMMToYYYY(DateList): NewYYYYQQList = [] for NoDate in range(0, len(DateList)): dateYYYYMM = DateList[NoDate] if ('19' in dateYYYYMM) or ('20' in dateYYYYMM): yr = dateYYYYMM[:4] else: yr = dateYYYYMM NewYYYYQQList.append(yr) return NewYYYYQQList