1. 程式人生 > >pandas處理csv檔案

pandas處理csv檔案

機器學習離不開資料,資料分析離不開pandas。昨天感受了一下,真的方便。按照一般的使用過程,將pandas的常用方法說明一下。

首先,我們拿到一個excel表,我們將之另存為csv檔案。因為檔案是實驗室的資源,我就不分享了。

首先是檔案讀取

def load_csv(filename):
    data=pd.read_csv(filename)
    data = data.drop(data.columns[39:], axis=1)
    return data

我們呼叫read_csv檔案可以直接讀取csv檔案。其返回值為DataFrame。excel如果橫向拖動太多的話,會生成很多空列。這裡我們通過drop方法刪掉39列之後的列。

然後pandas為了讓顯示美觀,會在輸出資訊的時候自動隱藏資料。我們調整引數,使資料全部顯示。

pd.set_option('display.max_rows', 10)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 500)

設定最多顯示10行,500列。寬度為500.

使用 data.head()可以檢視前4行的資料。

print(data.head())

可以看到全部資料都被顯示出來了。然後我們可以使用data.info() ,data.discribe()、data.count()檢視資料的整體資訊。

print(data.info())
print(data.describe())
print(data.count())

可以看到資料的值跨度很大,所以我們對資料進行normalization:

keys=X.keys().tolist()
keys.remove("Index")
keys.remove("Label")

for key in keys:
    #將數值範圍限定在-0.5~0.5
    #normalize_col=(X[key]-(X[key].max()+X[key].min())/2)/(X[key].max()-X[key].min())
    #用mean來normolize
    normalize_col = (X[key] - X[key].mean()) / (X[key].max() - X[key].min())
    X = X.drop(key, axis=1)
    X[key]=normalize_col    

我們可以通過keys中列名來有選擇的進行歸一化處理。

有時候,有的不和規範的資料我們想刪掉:

#刪掉JiGan為-1的人
data = data[data["JiGan"].isin([-1.0]) == False]

資料篩選還有其他函式,用到了在慢慢補充吧。