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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

dataframe 众数的方法_数据分析师最常用的数据分析方法。你都掌握了吗?

發布時間:2025/3/20 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dataframe 众数的方法_数据分析师最常用的数据分析方法。你都掌握了吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 分布分析:

發現各個維度下數據的分布情況

研究數據分布特征和分布類型;

主要統計量:極差 大小反應分布情況是否穩定

頻率分布情況: 一般用直方圖 分組區間使用pd.cut . 累積頻率.cumsum()

定量一般用直方圖 。 定性字段一般用餅圖

分組組距及組數

2 對比分析

絕對數比較

相對數比較

3 統計分析

集中趨勢度量:

算數平均數 .mean()

位置平均數:中位數。median() 。 眾數.mode()、。。。

離中趨勢度量

極差

分位差 樣本描述性統計.describe() . 四分之三位數/四分之一位數

方差、標準差

4 帕累托分析 (貢獻度分析) 二八定律

首先對目標數據進行排序:

data.sort_values(0,ascending = False,inplace=True)

然后求出累計占比:

data['累計占比'] = data[0].cumsum()/data[0].sum()

制作圖表:

plt.figure(figsize=(16,7))?data[0].plot(kind='bar', color='g',)?plt.xticks(rotation=0)?data['累計占比'].plot(style = '--ko', secondary_y = True)?plt.axvline(6,color='r',linestyle='--')?plt.show()

5 正態性檢驗

  • 直方圖初判
data = pd.DataFrame(np.random.randn(1000)*1000+16,columns=['value'])fig = plt.figure(figsize=(16,10))ax1 = fig.add_subplot(2,1,1)ax1.scatter(data.index,data.value) #散點圖ax2=fig.add_subplot(2,1,2)ax2.hist(data['value'],bins=50) #直方圖plt.show()
  • K-S檢驗

理論推導:

  • 算出均值、標準差
  • 統計頻率、降序排列 ,計算累計頻率
  • 算出 標準化取值 = (值-平均數)/方差
  • 通過查表 根據標準化取值 得出理論分布
  • 用累計頻率-理論分布 。 接著查表 得出p 。 如果p>0.05 基本滿足正太分布
  • 直接使用函數

    from scipy import stats?u = data['value'].mean()std = data['value'].std()stats.kstest(data['value'],'norm',(u,std))

    6 相關性分析

    首先檢驗數據是否符合正態分布,

    如果符合使用皮爾森相關系數:data.corr()

    不符合的話使用 斯皮爾曼相關系數:data.corr(method='spearman')

    7 數據處理

    判斷是否有缺失值 :

    data.isnull() / data.notnull()返回布爾型結果

    刪除缺失值

    data.dropna(inplace=True)

    替換缺失值:

    data.fillna('填充的值',inplace=True) data.fillna(method='pad') . 用之前的值填充 。 backfill用之后的值填充

    拉格朗日插值法填充數據:

    def f(s,n,k=5): y = s[list(range(n-k,n+k+1))] y = y[y.notnull()] return lagrange(y.index,list(y))(n)?for i in range(len(data)): if data[0].isnull()[i]: data[0][i] = f(data[0],i) print(f(data[0],i))

    數據標準化:

    0-1 標準化

    def f(df,*cols):? df_n = df.copy()? for col in cols:? ma = df_n[col].max()? mi = df_n[col].min()? df_n[col+'_n'] = (df_n[col]-mi) / (ma-mi)? return df_n?df_n = f(data,'value1','value2')df_n??

    z-score標準化

    z-score 標準化 把非標準正太分布 換成標準正太腹部 (值-平均值)/標準差

    def f_z(df,*cols):? df_z = df.copy()? for col in cols:? me = df_z[col].mean()? std = df_z[col].std()? df_z[col+'_z'] = (df_z[col]-me) / std? return df_z?df_z = f_z(data,'value1','value2')df_z

    數據連續屬性離散化

    等寬法:

    #cut 方法 劃分區間?bins = [1,30,50,100]cats = pd.cut(data['age'],bins,right=False)data['age_a'] = cats

    等頻法:

    #等頻劃分 按照分位數劃分 以相同的數量記錄到某個區間# qcut 方法?data = pd.Series(np.random.rand(1000))cats = pd.qcut(data,10)cats.value_counts(sort=False)

    總結

    以上是生活随笔為你收集整理的dataframe 众数的方法_数据分析师最常用的数据分析方法。你都掌握了吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

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