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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python实现表格分析与建模_python实现数据分析与建模

發布時間:2023/12/15 python 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python实现表格分析与建模_python实现数据分析与建模 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

首先我們做數據分析,想要得出最科學,最真實的結論,必須要有好的數據。而實際上我們一般面對的的都是復雜,多變的數據,所以必須要有強大的數據處理能力,接下來,我從我們面臨的最真實的情況,一步一步教會大家怎么做。

1.數據的讀取

(1)讀取模塊

Import pandas as pd

Import numpy as np

(2)讀取表格的全部數據

df = pd.read_csv(".data/HR.csv")

(3)讀取你所需要的數據

sl_s=df["sactisfaction_level"]

2. 數據的處理

2.1.異常值(空值)處理

2.1.1刪除

首先,第一步是對空值的處理。

有兩種,一種直接刪除,另一種指代。

如果數據多,想簡單一點,就直接刪除,方法都很簡單。

首先,建立一個DataFrame表

1.為了確定是否含有空值:

df.isnull() #如果含有空值,返回True

2.刪除

df.dropna() #去掉含空值的行

如果想要刪除某一個屬性含空值的行就加入subset參數

df.dropna(subset=["B"]) #去掉B屬性含空值的行

判斷是否有重復的數據:

df.duplicated(["A"]) #A屬性中重復的數據返回True

刪除A屬性重復的行

df.drop_duplicates(["A"])

df.drop_duplicates(["A"],keep=False) #刪除A屬性全部重復的行

df.drop_duplicates(["A"],keep=first) #刪除A屬性全部重復的行,保留第一個

df.drop_duplicates(["A"],keep=last) #刪除A屬性全部重復的行,保留最后一個

2.1.2指代

有些數據非常重要,不能刪除,那我們就選擇指代,也就是替換

#含空值的數據被替換為“b*”

df.fillna("b*")

#E屬性中的含空值的數據被替換成該屬性的平均值

df.fillna(df["E"].mean())

#插值替換

如果含空值的元素為最后一個,那么空值的數據替換成和上一個數據一樣

如何含空值的元素為中間,那么空值的數據被(上+下)/2代替

df["E"].interpolate()

#3次樣條插值 order 參數就是幾次樣條插值

df["E"].interpolate(method="spline",order=3)

*函數

(4)異常值分析(含有就返回True) --isnull()

sl_s.isnull()

主要表示沒有空值

(5)提取異常值的該屬性信息

sl_s[sl_s.isnull()]

(6)提取異常值的表格全部信息

df[df["sactisfaction_level"].isnull()]

(7)丟棄異常值 --dropna()

sl_s=sl_s.dropna()

注:刪除為空的異常值

可以利用where()把異常數據賦空,然后利用dropna()刪除

(8)填充異常值 --fillna()

sl_s=sl_s.fillna()

(9)平均值 --mean()

sl_s.mean()

(10)標準差 --std()

Sl_s.std()

(11)最大值 --max()

sl_s.max()

(12)最小值 --min()

sl_s.min()

(13)中位數 --median()

sl_s.median()

(14)下四分位數 --quantile(q=0.25)

sl_s.quantile(q=0.25)

(15)上四分位數 --quantile(q=0.75)

sl_s.quantile(q=0.75)

(16)偏度 --skew()

sl_s.skew()

分析:小于0 是負偏 均值偏小,大部分數是比他的均值大的

大于 0 稍微有些振偏

遠大于0, 是極度振偏,均值要比他的大多數值大好多。

(17)峰度 --kurt()

sl_s.kurt()

分析:<0 相比于正態分布,他的趨勢相對平緩

遠大于0 說明他的形變是非常大的,所以是不靠譜的

(18)獲得離散化的分布(numpy模塊) --histogram()

np.histogram(sl_s.values,bins = np.arange(0.0,1.1,0.1))

結果分析:

[195,1214,532,974,…]

[0.0,0.1,0.2,0.3,0.4…]

代表0.0-0.1之間有195個數,0.1-0.2之間有1214個數,以此類推

分布間隔為0.1

3.利用四分位數來去除異常值

3.1.提取大于1的值

le_s[le_s>1]

3.2 去除大于1的異常值

le_s[le_s<=1]

3.3 提取正常值(利用四分位數)

3.3.1 下四分位

q_low=le_s.quantile(q =0.25)

3.3.2 上四分位

q_high=le_s.quantile(q=0.75)

3.3.3 四分位間距

q_interval=q_high-q_low

3.3.4 定義k的值

K=1.5~3之間

如果k=1.5,刪除的異常值是中度異常

如果k=3.0,刪除的異常值是極度異常

3.3.5 篩選

le_s=le_s[le_sq_low-k*q_interval]

3.4 數據的個數 --len()

len(le_s)

3.5離散分布直方圖(numpy模塊)

np.histogram(le_s.values,bins=np.arange(0.0,1.1,0.1))

3.6回顧數據的平均值,標準差,中位數,最大值,最小值,偏度,峰度,確定數據的正常。

4.靜態結構分析

4.1每個值出現的次數 --values_counts()

np_s.value_counts()

4.2獲取該數據的構成和比例(每個值的頻率)

np_s.value_counts(normalize=True)

4.3 排序

np_s.value_counts(normalize=True).sort_index()

5.數據分區間

5.1把數據分成幾份 --histogram()

np.histogram(amh_s.values,bins=10) 把數據分成10份

5.2另一種方法 加了區間,計算區間的頻數

(左閉右開的區間)

Np.histogram(amh_s.values,bins = np.arange(amh_s.min(),amh_s.max()+10,10))

(左開右閉的區間)

amh_s.value_counts(bins=np.arange (amh_s.min(),amh_s.max()+10,10))

6.英文異常值數據的處理

6.1 首先,統計該數據的分布頻數

s_s.value_counts()

6.2確定異常值的名字。

6.3把異常值賦空(NaN) --where()

s_s.where(s_s!="name")

意思是把”name”的數據賦空

6.4把賦空的異常值刪除 --dropna()刪除異常值

s_s.where(s_s!="name").dropna()

6.5 檢查刪除異常值的結果

s_s.where(s_s!="name").dropna().value_counts()

7.對比分析

7.1對表格中空值的行刪除

Df = df.dropna(axis=0,how='any')

axis =0 ,代表的是行刪除

how=‘any' 代表的是含有部分空值就執行行刪除

how=‘all' 代表的是一行全部是空值執行行刪除

7.2含有條件性的對異常值的刪除

df=df[df["last_evaluation"]<=1] [df["salary"]!="name"][df["department" ]!="sale"]

7.3分組(比如:把同一部門的人分為一組) --groupby()

df.groupby("department")

7.4對分組后的組取均值

df.groupby("department").mean()

7.5 取部分數據(切片) --loc()

df.loc[:,["last_evaluation","department"]] .groupby("department")

7.6 取部分數據求平均

df.loc[:,["last_evaluation","department"]] .groupby("department").mean()

7.7 取部分數據求極差 --apply()

df.loc[:,["average_monthly_hours" ,"department"]].groupby ("department")[ "average_monthly_hours"]. apply(lambda x:x.max()-x.min())

總結

以上所述是小編給大家介紹的python實現數據分析與建模 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對嗨學網的支持!

如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

總結

以上是生活随笔為你收集整理的python实现表格分析与建模_python实现数据分析与建模的全部內容,希望文章能夠幫你解決所遇到的問題。

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