获取前一天的数据



我想做一份关于每日余额波动的报告。我的想法是创建一个文件夹,使用glob打开所有文件,连接并使用它来制作散点图。下面是我的示例代码:

import pandas as pd
import numpy as np
df1 = pd.DataFrame({
'BAS_DT': ['20211010','20211010','20211011','20211011','20211012','20211012'],
'REF_NO': ["VN121001211","VN121001212","VN121001211","VN121001212","VN121001212","VN121001213"],
'APPR_LIM':[1,2,1,2,2,3]})
df1.head(6)
#df1
BAS_DT  REF_NO  APPR_LIM
0   20211010    VN121001211 1
1   20211010    VN121001212 2
2   20211011    VN121001211 1
3   20211011    VN121001212 2
4   20211012    VN121001212 2
5   20211012    VN121001213 3
import datetime
Previous_date=datetime.datetime.today() - datetime.timedelta(days=1)
Previous_date = Previous_date.strftime('%Y%m%d')
df2=df1[df1['BAS_DT']==Previous_date]
print(df2)
#df2
BAS_DT       REF_NO  APPR_LIM
2  20211011  VN121001211         1
3  20211011  VN121001212         2
df3 = df1.tail(2)
print(df3)
#df3
BAS_DT       REF_NO  APPR_LIM
4  20211012  VN121001212         2
5  20211012  VN121001213         3

在获得前一天和前一天的数据后,我使用isin查找哪些REF_NO已被删除:

df2['Match'] = df2['REF_NO'].isin(df3['REF_NO'])
df2 = df2[(df2['Match']==False)]
print(df2)
#df2
BAS_DT       REF_NO  APPR_LIM  Match
2  20211011  VN121001211         1  False

但问题是,如果我在星期一做报告,而实际的Previous_date是周末(周末没有产生新的余额),公式df2=df1[df1['BAS_DT']==Previous_date]将返回没有任何结果。

在这种情况下我该怎么做?

感谢并致以最良好的问候

不减去datetime.timedelta(days=1),使用BDayoffset from pandas,它计算业务日期偏移:

import datetime
from pandas.tseries.offsets import BDay
Previous_date=datetime.datetime.today() - BDay(1)
Previous_date = Previous_date.strftime('%Y%m%d')
Previous_date
'20211008'

今天是2021-10-11,星期一,前一个工作日是2021-10-08

相关内容

  • 没有找到相关文章

最新更新