从pandas数据框架创建滚动率矩阵



如果我问了一个非常基本的问题,我道歉。我想在python中复制一个简单的滚动矩阵,但是我很挣扎,我想知道我是否可以得到一些帮助。

老化(已导入DF)

<表类> 月 NYD DPD30 DPD60 DPD90 DPD120 DPD150 损失 tbody><<tr>1月1000500400300200100502月12004003502501501803039008902502001801201004月21006006501901251508051800120040045012580906月15009008002573259075
import pandas as pd

df=pd.read_excel(r"D:Stack_overflow/test1.xlsx")

#TAKING OUT ALL THE COLUMNS WITH HAVING INT TYPE
cols=df.select_dtypes(exclude=['object']).columns
cols=cols.to_list()

#CREATING ANOTHER LIST WITH _tmp ADDED TO THE LIST ELEMNETS
cols2=[x + '_tmp' for x in cols]
cols2=cols2+['tmp']
cols=cols+['tmp']
print(cols2)
#ADDING TMP COLUMN TO DF
df['tmp']=0
df['Month']=df['Month'].shift(-1)
#RUNNING OUT THE LOOP FOR EVERY EELEMENT STARTING FROM THE DPD30 (ELEMENT 2nd of cols)
for i in range(len(cols)-1):
df[cols[i]]=((df[cols[i+1]].shift(-1))/df[cols[i]])*100

print(df.head())
Month        NYD      DPD30      DPD60  ...     DPD120     DPD150  Loss  tmp
0   Feb  40.000000  70.000000  62.500000  ...  90.000000  30.000000   0.0    0
1   Mar  74.166667  62.500000  57.142857  ...  80.000000  55.555556   0.0    0
2   Apr  66.666667  73.033708  76.000000  ...  83.333333  66.666667   0.0    0
3   May  57.142857  66.666667  69.230769  ...  64.000000  60.000000   0.0    0
4  June  50.000000  66.666667  64.250000  ...  72.000000  93.750000   0.0    0

如果不需要,或者在以后的代码中出现错误,可以删除tmp列。

希望这能解决问题。

最新更新