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

歡迎訪問 生活随笔!

生活随笔

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

python

怎么用python处理数据_Python数据清洗 - 洗什么?怎么洗?看完就明白了

發布時間:2025/3/19 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么用python处理数据_Python数据清洗 - 洗什么?怎么洗?看完就明白了 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

編輯推薦:

文章來自于csdn,本文主要講解python數據預處理中的數據清洗的主要工作:缺失值處理、重復值處理、異常值處理的相關內容,希望對您的學習有所幫助。

數據挖掘過程中,采集的原始數據里存在著各種不利于分析與建模工作的因素,比如數據不完整、數據矛盾、異常值等。這些因素不僅影響建模的執行過程,更有甚者在不知不覺間給出錯誤的建模結果,這就使得數據清洗顯得尤為重要。但是數據清洗并不是數據預處理的全部內容,它只是第一步而已,接下來還有數據集成、數據轉換和數據規約等一系列處理。在實際應用中,數據預處理的工作量占整個建模過程的60%,可以說,預處理做得好,模型基本就出來了。

數據預處理的主要內容包括:

數據清洗;

數據集成;

數據轉換;

數據規約;

但是在這一篇里,我們只講數據清洗,其他部分會慢慢整理。

數據清洗主要是刪除原始數據中的無關數據,重復數據,平滑噪聲數據,篩選掉與建模目的無關的數據,處理缺失值與異常值等。

缺失值處理

除了很明顯的缺失值(單元格處無值)之外,還有一種隱形的缺失值,比如,你要分析一個人從2018年初到現在每個月的收入情況,加入某個月這個人完全沒有收入,賬單流水中是不會顯示這種情況的,如果你想把對這些沒有收入的月份進行缺失值處理的話,首先你就要找出哪些月份不在賬單流水中。那么請看下面這個鏈接中的文章吧,文章會給出2018年初到現在連續的日期,你只需要匹配一下就知道哪些月份不在賬單中了。

處理缺失值的方法分為3類:刪除、插補、不處理。

刪除缺失值

如果通過刪除小部分的數據就可以達到目標,那么這無疑是最簡單高效的辦法。但是考慮到數據采集的不易,因此一般不會輕易刪除數據。

先來看看數據的大致情況import pandas

as pd

#讀取文件

datafile = u'E:\\pythondata\\tt.xlsx'#文件所在位置

data = pd.read_excel(datafile)#如果是csv文件則用read_csv

print("顯示缺失值,缺失則顯示為TRUE:\n", data.isnull())#是缺失值返回True,否則范圍False

print("---------------------------------\n顯示每一列中有多少個缺失值:\n",data.isnull().sum())#返回每列包含的缺失值的個數

運行結果:

顯示缺失值,缺失則顯示為TRUE:

姓名 身高 性別 血型 出生年份 籍貫

0 False False False False False False

1 False False False False False True

2 True True True True True True

3 False False False False False False

4 False False False False False False

5 False False False False False False

6 False True True False True True

7 False False False False False False

---------------------------------

顯示每一列中有多少個缺失值:

姓名 1

身高 2

性別 2

血型 1

出生年份 2

籍貫 3

dtype: int64

刪除缺失值具體的情況是一下幾種:

data.dropna() #直接刪除含有缺失值的行

data.dropna(axis = 1) #直接刪除含有缺失值的列

data.dropna(how = 'all') #只刪除全是缺失值的行

data.dropna(thresh = 3) #保留至少有3個非空值的行

data.dropna(subset = [u'血型 '])?#判斷特定的列,若該列含有缺失值則刪除缺失值所在的行

插補缺失值

常見的插補方法:

看一眼源數據:

import pandas

as pd

#讀取文件

datafile = u'E:\\pythondata\\ttt.xlsx'#文件所在位置

data = pd.read_excel(datafile)#如果是csv文件則用read_csv

print("顯示源數據data:\n", data)#是缺失值返回True,否則范圍False

print("------------------\n用均值插補后的數據data:\n",

data.fillna(data.mean()))

運行結果:

顯示源數據data:

姓名 工資

0 張三 11687.0

1 李四 10237.0

2 王五 8971.0

3 趙六 9310.0

4 馬七 15890.0

5 楊八 NaN

6 譚九 12361.0

7 黃十 9219.0

------------------

用均值插補后的數據data:

姓名 工資

0 張三 11687.000000

1 李四 10237.000000

2 王五 8971.000000

3 趙六 9310.000000

4 馬七 15890.000000

5 楊八 11096.428571

6 譚九 12361.000000

7 黃十 9219.000000

簡單的缺失值插補方法:

data.fillna(data.mean()) #均值插補

data.fillna(data.median()) #中位數插補

data.fillna(data.mode()) #眾數插補

data.fillna(data.max()) #最大值插補

data.fillna(data.min()) #最小值插補

data.fillna(0) #固定值插補--用0填充

data.fillna(5000) #固定值插補--用已知的行業基本工資填充

data.fillna(method='ffill')#最近鄰插補--用缺失值的前一個值填充

data.fillna(method='pad') #最近鄰插補--用缺失值的前一個值填充

通過擬合函數來插補的方法:

主要說一說拉格朗日插值法吧,除了拉格朗日插值法,還有牛頓插值法、Hermite插值法、分段插值法和樣條插值法。有興趣的可以把后幾種方法的代碼也研究出來。

或者,也可以使用缺失值所在行的上一行填補缺失值

不處理缺失值

不處理就是不管,所以此處省略一萬字......

重復值處理

在Pandas中,.duplicated()表示找出重復的行,默認是判斷全部列,返回布爾類型的結果。對于完全沒有重復的行,返回

False,對于有重復的行,第一次出現的那一行返回 False,其余的返回 True。

與.duplicated()對應的,.drop_duplicates()表示去重,即刪除布爾類型為

True的所有行,默認是判斷全部列

import pandas

as pd

import numpy as np

from pandas import DataFrame,Series

#讀取文件

datafile = u'E:\\pythondata\\tt.xlsx'#文件所在位置,u為防止路徑中有中文名稱,此處沒有,可以省略

data = pd.read_excel(datafile)#datafile是excel文件,所以用read_excel,如果是csv文件則用read_csv

examDf = DataFrame(data)

#去重

print(examDf.duplicated())#判斷是否有重復行,重復的顯示為TRUE,

examDf.drop_duplicates()#去掉重復行

#指定某列判斷是否有重復值

print(examDf.duplicated('name'))#判斷name列是否有重復行,重復的顯示為TRUE,

examDf.drop_duplicates('name')#去掉重復行

#根據多列判斷是否有重復值

print(examDf.duplicated(['name','sex','birthday']))#判斷name,sex,birthday列是否有重復行,重復的顯示為TRUE,

examDf.drop_duplicates(['name','sex','birthday'])#去掉重復行

此處只是放出代碼來.

異常值處理

數據清洗過程中的異常值的處理,是選擇剔除還是用其他值代替,需要視情況而定。有些異常值可能包含某些信息,需認真思考后采取處理方法。

常見的異常值處理辦法:

遍歷查找異常值,并根據規則調整大小

刪除異常值

import pandas

as pd #導入pandas庫

inputfile = u'E:\\pythondata\\ttt.xlsx'

data= pd.read_excel(inputfile)

#將工資低于1000或者高于10萬的異常值清空

data[u'工資'][(data[u'工資']<1000) | (data[u'工資']>100000)]

= None

#清空后刪除

print(data.dropna())

視為缺失值后進行插補

#將工資低于1000或者高于10萬的異常值清空

data[u'工資'][(data[u'工資']<1000) | (data[u'工資']>100000)]

= None

#清空后用均值插補

print(data.fillna(data.mean()))

除了用均值插補之外還可以用中位數、眾數、最值、固定值、最近鄰值、拉格朗日等插值,具體方法往前翻,上面剛寫完。

OVER!

總結

以上是生活随笔為你收集整理的怎么用python处理数据_Python数据清洗 - 洗什么?怎么洗?看完就明白了的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 一级aaaa毛片 | 中文字幕一区二区三区人妻电影 | 91久久精品一区二区别 | 亚州a级片 | 97精品人妻一区二区三区蜜桃 | 久久av中文字幕 | 97超碰中文字幕 | 好吊妞视频一区二区三区 | 美女黄色真播 | 国产成人传媒 | 成人h动漫精品一区二区器材 | 欧美亚色 | 国产精品一二三区 | 亚洲男女啪啪 | 欧美黑人精品一区二区 | 亚欧洲乱码视频 | 国内精品久久久久久久久 | 三级av在线| 国产在线观看免费高清 | 黄色一级片免费在线观看 | 国产精品久久久久久久免费 | 奇米影视四色777 | 99精品在线观看 | 非洲一级黄色片 | 综合精品在线 | 免费看的av | 天堂网站| 久久精品视频9 | www超碰| 成年人免费在线观看视频网站 | 日韩精品一卡 | 成人激情社区 | 想要xx视频| 中文有码在线观看 | 中文字幕第页 | 91打屁股 | 国产又粗又黄又爽又硬 | 精品在线观看一区二区 | 婷婷色小说 | 日本三级一区二区三区 | 美足av | 色哒哒影院| 午夜激情福利 | 久久久久国产精品夜夜夜夜夜 | 迈开腿让我尝尝你的小草莓 | 男女啪啪免费 | 超碰人人搞| 少妇高潮一区二区三区在线 | 亚洲一区精品视频 | 国产99免费 | 午夜亚洲福利在线老司机 | 在线成人免费视频 | 一区二区三区四区五区六区 | 嫩草影院在线观看视频 | 91超碰在线免费观看 | 国产成人亚洲精品无码h在线 | 天堂视频免费 | 精品人妻无码专区视频 | 亚洲狠狠婷婷综合久久久久图片 | 风间由美一二三区av片 | 免费黄色大片 | 精品美女一区 | 欧美大片免费看 | 日本人和亚洲人zjzjhd | 久久精品视频免费看 | 97人妻精品一区二区免费 | 麻豆传媒一区二区三区 | 午夜激情av| 欧美性大战久久久久xxx | 中文字幕+乱码+中文乱码www | 色偷偷av一区二区三区 | 91吃瓜今日吃瓜入口 | 精品女同一区二区 | 91九色蝌蚪 | 国产无套在线观看 | 国产成人精品视频一区二区 | 成人黄色片免费看 | 一区二区三区人妻 | 中文字幕av一区二区三区谷原希美 | 久久综合热 | 亚洲欧美综合一区二区 | aaa毛片视频 | 一道本在线视频 | 69久久成人精品 | 爱情岛论坛成人av | 亚洲AV无码成人精品国产一区 | 成人午夜影院在线观看 | 性欧美69| 四虎影视大全 | 国产96在线 | 亚洲 | 嫩草影院永久入口 | 国产制服91一区二区三区制服 | 最新在线视频 | 尤物视频在线观看国产 | 久久久无码人妻精品无码 | 性淫bbwbbwbbw| 激情免费网站 | 亚洲在线视频免费观看 | 久久久老司机 |