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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何将dataset中的值赋值给datatable_金融行业实战项目:如何理解业务?

發布時間:2024/7/23 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何将dataset中的值赋值给datatable_金融行业实战项目:如何理解业务? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【面試題

下表是某金融App的數據,請結合Excel數據集中的數據完成下列問題(某金融公司面試題,文末有數據下載?)

原始數據如下所示:

為方便后期分析,我們對數據進行分類。數據通常分為3類:用戶數據、行為數據、產品數據。

用戶數據指用戶基本情況,行為數據指用戶做過什么,產品數據是指平臺賣的東西。

原始數據中年齡、性別、手機省份、手機城市、注冊時間、用戶注冊終端、用戶注冊渠道、會員級別等信息為用戶數據,其余數據為行為數據,無產品數據。

因為行為數據過多不利于分析,我們把行為數據中與最近一次登陸相關的信息提取出來,列為最近登錄數據。

把是否...7天內...類的問題提取出來,作為活躍數據。

行為數據如下:

問題:

1.理解數據

如果將該數據建立一個數據庫,有哪些表,各表之間的關系是什么?

2.數據整理

假設該Excel數據是一個數據表(Datatable),請用SQL寫出:

(1)最近一次登錄城市各有多少用戶在表中?

(2)“用戶ID”之間的可能關系?(比如家庭成員,情侶等)

(3)請找出數據表中的異常值,并以此闡述你如何控制數據質量并以本數據為例設計數據質量報表。

【解題思路】

1.理解數據

如果將該數據建立一個數據,有哪些表,各表之間的關系是什么?

和面試官溝通該金融App后,了解了該產品的業務流程,畫出下圖:

拆分為4個表(也就是Excel對應的各個sheet表):

(1)“用戶信息”表中包含用戶id,年齡,性別等基本信息。

其中用戶id已進行加密,手機省份和手機城市是注冊所在地,用戶注冊終端是注冊時的終端(電腦端web、蘋果手機、安卓手機),用戶注冊渠道展示的是渠道ID。

(2)“最近登錄”表中是最近一次登陸ip,展示的是已加密的ip。

(3)“行為數據”表中,投資金額經過等比例放大。

表中字段含義,首投距今時間(天)是固收(含債轉)_首次投資時間距今天的時間。

最近一次投資距今時間(天)是固收(含債轉)_最近一次投資時間 距今天的時間。


首投距注冊時長(天)是首次投資距離注冊時間,以天為單位。

用戶瀏覽產品期限傾向是指固收含轉讓區(產品期限:1-3,4-6,7-12,12以上(PC+H5+APP))。

用戶瀏覽產品利率傾向是指固收含轉讓區(利率:(0,4%],(4%,5.5%],(5.5%,6%],(6%,7.5%],7.5%以上(PC+H5+APP))。

(4)“活躍數據”表中,本月是否有大額回款指本月回款額度1萬及以上。

表中字段含義,

是否訪問7天內未注冊:首次訪問到注冊時間>7天,或有訪問已超過7天但未注冊。


是否注冊7天內未充值:注冊到首次充值時間>7天,或有注冊已超過7天但未充值。

是否注冊7天內未投資:注冊到首次投資時間>7天,或有注冊已超過7天但未投資。

是否托管7天內未充值:托管到首次充值時間>7天,或有托管已超過7天但未充值。

是否托管7天內未投資:托管到首次投資時間>7天,或有托管已超過7天但未投資。

是否充值7天內未投資:最近一次充值到最近一次投資時間>7天,或最近一次充值已超過7天但未投資。

根據上面的業務分析,建立數據庫,建立4個表有用戶數據、行為數據、最近登錄數據、活躍數據表,各表之間以用戶id為主鍵聯結,關系如下圖。

2.數據整理

(1)最近一次登錄城市各有多少用戶在表中?

“最近一次登錄”在“最近登陸數據“表中。

“各有”,翻譯過來就是“每個城市”。涉及到“每個”到業務問題,要想到《猴子 從零學會SQL》里講過的用“分組匯總”來實現。

這里分組按用戶id,匯總使用count函數進行計數。

select?最近一次登錄城市,count(用戶id)?as?人數from?最近登陸數據group by 最近一次登錄城市;

輸出結果(數據過多僅展示前8行數據):

(2)“用戶ID”之間的可能關系?(比如家庭成員,情侶等)

使用多維度拆解分析方法來拆解問題:當最近登錄ip相同時,用戶之間可能會存在關系。因此,分兩步解決該業務問題。

(1)找出ip重復的數據;

(2)找出重復ip對應的用戶信息。也就是輸出用戶id、性別、年齡,最近一次登陸ip等信息,并對最近一次登陸ip進行升序排列。

第1步:找出ip重復的數據

“最近一次登錄ip”在“最近登陸數據表“中。

該問題是“找重復數據”類問題,按“最近一次登陸ip”分組(group by),然后使用having來篩選出每組里面次數>1次的就是重復數據。

select 最近一次登陸ipfrom?最近登陸數據group by 最近一次登陸iphaving?count(最近一次登陸ip)>1;

第2步:找出重復ip對應的用戶信息

輸出用戶id、性別,年齡,最近一次登陸ip等信息。

select 用戶id,最近一次登陸ipFROM?最近登陸數據where 最近一次登陸ip in(select 最近一次登陸ipfrom 最近登陸數據group by 最近一次登陸iphaving?count(最近一次登陸ip)>1);

第3步:聯結用戶數據表,輸出信息

把用戶數據作為臨時表a,第二步得出的結果作為臨時表b,并對所有數據進行升序排列。

select a.用戶id,a.性別,a.年齡,b.最近一次登陸ipfrom?用戶數據?as?a?right?join(select 用戶id,最近一次登陸ipfrom 最近登陸數據where 最近一次登陸ip in(select 最近一次登陸ipfrom 最近登陸數據group by 最近一次登陸iphaving count(最近一次登陸ip)>1)) as bon?a.用戶id=b.用戶idorder?by?b.最近一次登陸ip?asc;

查詢結果:

可以看出用戶id(1、2)具有相同ip地址,都為女性,年齡相差20歲,可以推測是母女關系。

用戶id(3、4)具有相同ip地址,性別一男一女,年齡相差6歲,可以推測是夫妻關系。

用戶id(5、6)具有相同ip地址,性別一男一女,年齡相差8歲,可以推測是夫妻關系。

用戶id(7、8)具有相同ip地址,性別一男一女,年齡相差3歲,可以推測是夫妻關系。

(3)請找出數據表中的異常值,并以此闡述你如何控制數據質量并以本數據為例設計數據質量報表。

根據《描述統計分析》里講過的異常值方法,我們可以使用Tukey's test方法找出宜昌至的范圍。

我們以該案例中的“年齡”為例,展示如何找出異常值。

第一步:計算出上四分位數

首先我們增加一列行號,使用“@”自定義“行號”這一變量,并用賦值運算符::=對“@行號”賦值為0。

select?@行號?:=?0;

結果如下:

然后,我們使用內聯結把原表格和新增的一列聯結在一起,形成新的表格,記為臨時表r。

select?年齡,@行號?:=?0from?用戶數據inner?join?(?select?@行號?:=?0?)?as?c;

結果如下:

然后,用賦值運算符“:=”賦值行號為“@行號:=@行號+1”,并該列名為行號,進行升序排列,把該表結果記為臨時表t。

select?年齡,@行號?:=?@行號?+?1?as?行號?from?用戶數據inner?join?(?select?@行號?:=?0?)?as?corder?by?年齡?asc;

最后,使用sql的floor函數來計算下四分位數,floor函數:向下舍入為指定小數位數。

select avg(年齡)?as?下四分位數from(select?年齡,@行號?:=?@行號?+?1?as?行號?from 用戶數據inner?join?(?select?@行號?:=?0?)?as?corder?by?年齡?asc?)?as?dwhere?行號?=?floor((?@行號+1)?/4?);

同理,使用3*(n+1)/4可以用來計算上四分位數。查詢結果如下:

第二步,用Tukey's test方法中k=1.5來找出中度異常值。

可以使用where函數找出異常值——在最大估算值和最小估算值之外的數據。

select 年齡,count(*) as 人數,count(*)/5000 as 人數占比from 用戶數據 where 年齡>(48+1.5*(48-32)) or 年齡32group by 年齡;

查詢結果如下:

用同樣的方法我們可以計算出投資金額的異常值。結果如下(因數據較多只選取部分數據呈現):

第三步:制作數據質量報表,以年齡數據為例。

把第二步中得到的結果作為臨時表e,用sum函數計算出年齡異常值的總人數與總人數占比。

select?年齡,sum(人數)?as?總人數,sum(人數)/5000?as?總人數占比from?臨時表e?;

結果如下:

按照上述步驟可得投資金額異常值的總人數與總人數占比,結果如下:

數據質量報表如下:

異常值的發生原因可以分為兩類:人為異常值和自然異常值。

自然異常值不是由于錯誤產生的,無需避免。

人為異常值可能由于數據輸入錯誤,故意填寫錯誤,數據處理錯誤等原因產生,這些情況是可以盡量避免的,這就要求我們做到以下幾點:

  • 認真細心。避免數據輸入錯誤。

  • 做好用戶宣傳,盡量填寫真實信息。

  • 提高提取數據的正確率,確保數據來源準確。

  • 【本題考點】

    1.考察對業務的理解能力,拿到數據以后,不是立馬開始分析,而是要先理解數據,對數據分類。

    2.“每個問題”要想到用分組匯總來實現。

    3.查找出重復數據。對數據項進行分組,找出數量大于2的數據即為重復值。

    4.利用sql計算四分位數,找出異常值。增加一列行號并升序排列,利用公式取出上四分位數和下四分位數,找出最小和最大估計值,在此范圍外的即為異常值。

    5.excel觀察數據特征:平均數、中位數、眾數。

    6.掌握常用的分析方法解決問題的能力。

    推薦:人工智能時代的必學技能

    總結

    以上是生活随笔為你收集整理的如何将dataset中的值赋值给datatable_金融行业实战项目:如何理解业务?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。