python進行數據預處理-pandas

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

導出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的剪切板。在將網頁轉換爲表格時有用

 

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

>>> 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表示就地修改

 

重複值處理:重複值的判斷與刪除code

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

 

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


相關操做:描述性統計、Apply、直方圖等
合併:符合各類邏輯關係的合併操做
分組:數據劃分、分別執行函數、數據重組
Reshaping:快速生成數據透視表blog

相關文章
相關標籤/搜索