
大家好,今天整理資料分析面試題集錦(四),經常會被問到,“資料分析需要學習什麼技能?”,“針對實際的業務場景,如何使用資料分析工具去分析?”基于此作者總結資料分析面試常用的問題,面試内容包括技能應用篇:EXCEL、SQL、Python、BI工具等,業務思維篇:常用的資料分析方法與業務思維等。
其中大部分問題點,沒有絕對标準答案,所有問題點都是為了解決問題,大家如果有更好的問題答案,也可以提出,對于其中的問題也可以提出,共同解答,歡迎點贊、轉發、評論,下面一起來學習。
本文講解内容:Excel、SQL、Python面試必備
适用範圍:多種資料分析實用技巧
Excel篇
1、自定義資料格式代碼
如何自定義資料格式,比如這裡8月銷售大于7月銷售,将其顯示為綠色并添加向上的箭頭,8月銷售小于7月銷售,将其顯示為紅色并添加向下的箭頭。
選擇需要設定資料格式的區域,右鍵點選設定單元格格式輸入如下的格式代碼,該代碼可分為兩部分,用分号隔開,第一部分是對大于0的值設定格式:[綠色][>0]▲0,表示字型顔色為綠色,顯示▲,0表示原數,第二部分是對小于0的值設定格式:[紅色][<0]▼0,表示字型顔色為紅色,顯示▼,0表示原數。
[綠色][>0]▲0;[紅色][<0]▼0
另外在PowerBI中,可以使用如下的DAX函數設定如上的自定義資料格式,感興趣可以嘗試一下。
環比_顔色 = SWITCH(TRUE(),
[環比]>0,UNICHAR(9650)&FORMAT([環比],"0.0%"),
[環比]<0,UNICHAR(9660)&FORMAT([環比],"0.0%"),"")
除此之外,還有自定義資料格式用來設定機關,如下也可設定單元格式,自定義設定。
0!.0,"萬"
0!.00,,"億"
比如這裡使用0!.0,"萬"表示萬,先使用千分位符,将資料縮小1000倍,然後設定資料格式為0!.0将資料縮小10倍,小數點前的 ! 是用于強制顯示小數點,将資料縮小10倍,最後再加一個萬字即可,需要加雙引号。
2、批量生成銷售個人明細
要批量生成銷售個人明細,比如生成每一個銷售每一天的銷量和銷售額情況,可以先資料透視,注意要将銷售員拖入到篩選器中。
然後在資料透視表工具中選擇分析,點選選項下面的顯示報表篩選頁。
在顯示報表篩選頁下選擇銷售員,點選确定即可。
如下将我們所有的銷售員每一天的銷量和銷售額進行了拆分,拆分為每一個銷售個人的具體情況。
SQL篇
表之間的關聯
如下考察表格之間的關聯關系,比如表與表之間的合并,表與表之間的相交等等,考查表格關聯的邏輯。
第一問、表A和表B的交集:
SELECT a.cus_id from `表a` as a
INNER JOIN `表b` as b
on a.cus_id=b.cus_id;
第二問、表A和表B的并集:
SELECT * from `表a`
UNION
SELECT * from `表b`;
第三問、表A和表B的對稱差:
SELECT * from `表a`
where cus_id not in (SELECT * from `表b`)
UNION
SELECT * from `表b`
where cus_id not in (SELECT * from `表a`);
第四問、表A中存在但表B中不存在:
SELECT * from `表a`
WHERE cus_id not in (SELECT cus_id from `表b`);
Python篇
1、np.where分組用法
首先建立案例資料,建立一個DataFrame。
import pandas as pd
df=pd.DataFrame(data={'國文': [50,90,70,78,60],
'數學': [59,80,60,75,69],
'英語': [61,95,65,80,59]},
index=['小明','小紅','小麗','小剛','小東'])
df['總分']=df['國文']+df['數學']+df['英語']
df
導入numpy庫,調用np.where的用法。
#np.where的用法
import numpy as np
df['總分評級']=np.where(df['總分']>200,'A等','B等')
df
np.where也用于兩個字段之間的比較,比如這裡的國文成績與數學成績之間的比較。
df['國文評級']=np.where(df['國文']>df['數學'],'✔','✘')
df
2、多條件指派用法
使用loc函數,選擇确定條件區域的資料,直接使用“=”号進行指派,進而達到多條件指派的用處。
#多條件指派用法
df['數學評級']=''
df.loc[df['數學']<60,'數學評級']='不及格'
df.loc[df['數學']>=60,'數學評級']='及格'
df
3、apply用法
首先定義一個GetScore函數,該函數中用來寫入不同的條件,然後使用apply函數應用到該行即可。
def GetScore(df):
if df['英語']<60:
return '不及格'
elif df['英語']<70:
return '及格'
elif df['英語']<80:
return '中等'
elif df['英語']<90:
return '良好'
elif df['英語']<100:
return '優秀'
df.loc[:,'英語評級']=df.apply(GetScore,axis=1)
df
4、np.select用法
有多個條件可以使用np.select函數,這種适用于多個字段之間設定比較條件,比如這裡國文、數學、英語同時大于60分就設定為及格,其他用法類似。
#多條件判斷,有多個條件可以使用np.select
conditions=[(df['國文']>=60)&(df['數學']>=60)&(df['英語']>=60),
(df['國文']<60)&(df['數學']>60)&(df['英語']>60),
(df['國文']>60)&(df['數學']<60)&(df['英語']>60),
(df['國文']>60)&(df['數學']>60)&(df['英語']<60)]
results=['合格','不合格','不合格','不合格']
df['多重評級']=np.select(conditions,results,default='不合格')
df
多列合并為一列可以使用map函數轉為字元型,用加号進行連接配接。
#将多列合并為一列
df['評級合并']=df['國文評級'].map(str)+df['數學評級'].map(str)+df['英語評級'].map(str)
df
背景回複資料分析入門,擷取資料分析入門資料
加入資料分析資料群,一起交流資料分析知識
關注和星标『大話資料分析』
和作者一起學習資料分析!