日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用Pandas进行变量衍生

發(fā)布時(shí)間:2025/3/21 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Pandas进行变量衍生 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
import pandas as pd import numpy as np dic={'delq1':[0,0,1], 'delq2':[1,1,2], 'delq3':[2,0,3], 'delq4':[0,1,4], 'delq5':[1,2,5], 'delq6':[1,3,0], 'delq7':[1,0,1], 'delq8':[0,0,2], 'delq9':[0,1,3], 'delq10':[0,2,0]} df1=pd.DataFrame(data=dic,index=['cust1','cust2','cust3'])

? 上圖是一個(gè)記錄客戶(hù)近10期的逾期記錄的數(shù)據(jù)框,基于逾期行為數(shù)據(jù)進(jìn)行變量的衍生。比如cust1客戶(hù),最近1期狀態(tài)為M0,最近2期狀態(tài)為M1,還款歷史字段應(yīng)為“0001110210”。

1.計(jì)算近p期總逾期次數(shù)
方法一:

def month_count(df, p):auto_value=np.where(df>0,1,0).sum(axis=1)return auto_value auto_value=month_count(df1,10)

方法二:

def delqcnt(x,term):result=0 j=term+1for i in range(1,j): result=result+(1 if (x['delq'+str(i)]>0) else 0) #計(jì)算每期記錄是否逾期return result #輸出加總逾期次數(shù)結(jié)果 df1['加總逾期次數(shù)']=df1.apply(lambda x:delqcnt(x,10),axis=1)

結(jié)果:

2.計(jì)算近p期最大的連續(xù)逾期次數(shù)

def maxcontinue(x,term):result=0 temp=0 #臨時(shí)存儲(chǔ)的變量j=term+1 for i in range(1,j): if (x['delq'+str(i)]==0) :temp=0 #如果當(dāng)前字段不逾期,重新計(jì)算連續(xù)次數(shù)temp=temp+(1 if (x['delq'+str(i)]>0) else 0) #計(jì)算連續(xù)逾期次數(shù)result=max(result,temp) #每一段連續(xù)逾期比較,取最大的一段逾期return result #輸出最大的逾期次數(shù) df1['最大的連續(xù)逾期次數(shù)']=df1.apply(lambda x:maxcontinue(x,10),axis=1)

即計(jì)算還款歷史中連續(xù)大于0的個(gè)數(shù),cust1客戶(hù)最大連續(xù)逾期次數(shù)為3,為1->1->1,cust3連續(xù)逾期次數(shù)為5,為1->2->3->4->5。

3.最近一次逾期距今月份數(shù)
方法一:

def lastdelq(x,term):result=99 #輸出結(jié)果默認(rèn)為99j=term+1 #為了獲取到相應(yīng)的字段for i in range(1,j): #循環(huán)取值result=min(result,(i if (x['delq'+str(i)]>0) else 99)) #計(jì)算最近一次逾期距今月份數(shù)return result #輸出最近一次逾期距今月份數(shù) df1['最近一次逾期距今月份數(shù)_1']=df1.apply(lambda x:lastdelq(x,10),axis=1)

方法二:

def lastdelq_(df1,term):auto_value=[]for i in range(len(df1)):row_value=df1.ix[i,'delq1':'delq'+str(term)]if row_value.max()<=0:indexs=0auto_value.append(indexs)else:indexs=1for j in row_value:if j>0:breakindexs+=1auto_value.append(indexs)return auto_value df1['最近一次逾期距今月份數(shù)_2']=lastdelq_(df1,10)

4.計(jì)算逾期連續(xù)增加的次數(shù)

def maxcontinuechg(x,term):result=0 #輸出結(jié)果默認(rèn)為0temp=0 #臨時(shí)變量設(shè)置為0for i in range(1,term): #循環(huán)取值j=i+1 #取后一位期數(shù)的值if (x['delq'+str(j)]<=x['delq'+str(i)]):temp=0 #若逾期期數(shù)沒(méi)有增加,設(shè)置臨時(shí)變量為0temp=temp+(1 if (x['delq'+str(j)]>x['delq'+str(i)]) else 0) #計(jì)算逾期連續(xù)增加的次數(shù)result=max(result,temp) #若有多段連續(xù)逾期,比對(duì)取最大的一段return result #輸出逾期連續(xù)增加的次數(shù) df1['逾期連續(xù)增加的次數(shù)']=df1.apply(lambda x:maxcontinuechg(x,10),axis=1)

5.計(jì)算逾期增加的次數(shù)

def maxcontinuechg(x,term):result=0 #輸出結(jié)果默認(rèn)為0temp=0 #臨時(shí)變量設(shè)置為0for i in range(1,term): #循環(huán)取值j=i+1 #取后一位期數(shù)的值temp=temp+(1 if (x['delq'+str(j)]>x['delq'+str(i)]) else 0) #計(jì)算逾期連續(xù)增加的次數(shù)result=max(result,temp) #若有多段連續(xù)逾期,比對(duì)取最大的一段return result #輸出逾期增加的次數(shù) df1['逾期增加的次數(shù)']=df1.apply(lambda x:maxcontinuechg(x,10),axis=1)

6.計(jì)算最近p個(gè)月,每?jī)蓚€(gè)月間的增長(zhǎng)量的最大值

def maxtwomonth_interval(x,term):result=0for i in range(1,term):j=i+1temp=x[j]-x[i]# print(temp)result=max(result,temp)return result df1['每?jī)蓚€(gè)月間的增長(zhǎng)量的最大值']=df1.apply(lambda x:maxtwomonth_interval(x,9),axis=1)

7.計(jì)算最近p個(gè)月取最大值的月份距現(xiàn)在的月份數(shù)

def maxmonth_interval(x,term):df=x.ix[:,'delq1':'delq'+str(term)]df['_max'] = np.nanmax(df, axis=1)for i in range(1, term + 1):df['delq' + str(i)] = list(df['delq' + str(i)] == df['_max'])df_value = np.where(df == True, 1, 0)auto_value = []for i in range(len(df_value)):row_value = df_value[i, :]indexs = 1for j in row_value:if j == 1:breakindexs += 1auto_value.append(indexs)return auto_value df1['最近p個(gè)月取最大值的月份距現(xiàn)在的月份數(shù)']=maxmonth_interval(df1,10)

8.計(jì)算最近p個(gè)月的均值

def Avg(x,p):df=x.ix[:,'delq1':'delq'+str(p)]auto_value=np.nanmean(df,axis=1)return auto_value df1['最近p個(gè)月的均值']=Avg(df1,10)

計(jì)算最近p個(gè)月的和

def Tot(x,p):df=x.ix[:,'delq1':'delq'+str(p)]auto_value=np.nansum(df,axis=1)return auto_value df1['最近p個(gè)月的求和']=Tot(df1,10)

計(jì)算最近p個(gè)月特征的最大值

def Max(x,p):df=x.ix[:,'delq1':'delq'+str(p)]auto_value=np.nanmax(df,axis=1)return auto_value df1['最近p個(gè)月的最大值']=Max(df1,10)

【作者】:Labryant
【原創(chuàng)公眾號(hào)】:風(fēng)控獵人
【簡(jiǎn)介】:某創(chuàng)業(yè)公司策略分析師,積極上進(jìn),努力提升。乾坤未定,你我都是黑馬。
【轉(zhuǎn)載說(shuō)明】:轉(zhuǎn)載請(qǐng)說(shuō)明出處,謝謝合作!~

總結(jié)

以上是生活随笔為你收集整理的使用Pandas进行变量衍生的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: gay男互凵gay男同偷精 | 亚洲每日在线 | 国产伦精品一区二区三区高清版禁 | 久操视频免费在线观看 | 欧美成人精品激情在线视频 | 色偷偷免费视频 | 国产1页| 亚洲网色 | 免费成人在线观看视频 | 在线观看免费av网站 | av免播放器在线观看 | 欧洲亚洲成人 | 亚洲免费在线观看 | 国产成人精品视频 | 国产三级国产精品国产专区50 | 国产美女久久久久久 | 奇米影视888 | 夜夜嗨老熟女av一区二区三区 | 欧美裸体视频 | 一区二区日韩国产 | 亚洲污污视频 | 欧日韩一区二区三区 | 亚洲欧洲国产精品 | 中文字幕三级 | 欧美日韩福利视频 | 成人美女毛片 | 蜜桃久久久久久 | 91九色成人 | 亚洲激情社区 | 日本欧美色| aaaaav| 亚洲AV成人无码电影在线观看 | 亚洲天堂av在线播放 | 草草在线观看视频 | 成年人网站在线免费观看 | 波多野结衣一二三区 | 亚洲一区二区三区蜜桃 | 一级成人av | 麻豆激情网| 亚洲成人免费观看 | 97影视 | 综合99 | 四虎影院www | 91网站免费看 | 99热这里只有精品久久 | 高清欧美性猛交xxxx黑人猛交 | 综合天堂av久久久久久久 | 久久艹久久 | 精品国产欧美日韩 | 中文字幕在线日亚洲9 | 天堂网2018| av加勒比在线 | www.黄色大片 | xxxx性视频 | 男女做事网站 | 国产丝袜美女 | 91国产一区| 超碰网站在线 | 天天精品 | 美女被草视频 | 狠狠躁狠狠躁视频专区 | 六月色丁香 | 久久天堂影院 | 精品九九| 不卡一区二区在线视频 | 亚洲欧美高清 | www.com捏胸挤出奶 | 成年在线视频 | 激情av在线 | 午夜日韩| 中文字幕亚洲欧美日韩在线不卡 | 亚洲av综合永久无码精品天堂 | 日本少妇吞精囗交视频 | 最好看的2019年中文视频 | 河北彩花av在线播放 | 免费久久av| 成人黄色大全 | 久久精品3| 久久av一区二区 | 国产精选中文字幕 | 国产精品传媒麻豆hd | 久久久久欧美 | 午夜影视在线观看 | 91精品国产99久久久久久红楼 | 91tv国产成人福利 | 成人亚洲电影 | 98精品国产| 欧美一级免费看 | 污污在线观看视频 | 成人高清 | 国产 日韩 欧美在线 | 日韩aaaaaa| 国产婷婷一区二区 | 先锋影音av在线 | 熟妇的味道hd中文字幕 | 一区二区三区日韩欧美 | 99爱在线| 国产喷白浆一区二区三区 | 2017日日夜夜 |