python進行數據預處理-pandas


安裝pandas,命令行輸入 pip install pandas

導出pandas以及它主要的兩個數據結構Series和DataFrame

import pandas as pd
from pandas import Series,DataFram

從csv或txt文件中讀取數據到DataFrame

import csv
data=pd.read_csv('filename.csv',encoding='gb18030',newline='')默認分隔符為逗號
data=pd.read_table('filename.txt',seq=',')#加載帶分隔符的數據使用seq='分隔符'
read_fwf   #讀取定寬列格式數據,沒有分隔符
read_clipboard #讀取剪切板中的數據,可以看做read_table的剪切板。在將網頁轉換為表格時有用

 

選擇:數據訪問(標簽、特定值、布爾索引等)

>>> data
      key1 key2
c1    9      8
c2    3      4
>>> data['key1']
c1    9     
c2    3 
>>> data.ix['c1']
key1    9
key2    8
>>> data[data['key1']>8]
    key1  key2
c1     9     8
>>> data[:1]
    key1  key2
c1     9     8
>>> data<5
     key1   key2
c1  False  False
c2   True   True
>>> data<5
     key1   key2
c1  False  False
c2   True   True
>>> data[data<5]=0
>>> data
    key1  key2
c1     9     8
c2     0     0
>>> data.ix[0]
key1    9
key2    8
>>> data.ix[:'c2',:]
    key1  key2
c1     9     8
c2     0     0

 

缺失值處理:對缺失數據行進行刪除或填充

#Series
data.dropna()
data[data.notnull()]
#DataFrame
data.dropna()   #丟棄任何含有缺失值的行
data.dropna(how='all')  #丟棄全為NA的行
data.dropna(axis=1, how='all')  #丟棄列
data.fillna(0,method='ffill')   #缺失值替換成0,
data.fillna({1: 0.5, 3: -1},inplace=True)   #對不同的列填充不同的值 fillna默認返回新對象,inplace表示就地修改

 

重復值處理:重復值的判斷與刪除

data.duplicated() #表示各行是否重復行,返回布爾值
data.drop_duplicates() #返回一個移除重復行的DataFrame
data.drop_duplicates(['key1']) #根據key1列過濾重復項,默認保留第一個出現的值組合
data.drop_duplicates(['k1', 'k2'], take_last=True) #保留最后一個值組合

 

異常值處理:清除不必要的空格和極端、異常數據


相關操作:描述性統計、Apply、直方圖等
合並:符合各種邏輯關系的合並操作
分組:數據划分、分別執行函數、數據重組
Reshaping:快速生成數據透視表


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM