pandas處理csv檔案
阿新 • • 發佈:2018-12-17
機器學習離不開資料,資料分析離不開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]
資料篩選還有其他函式,用到了在慢慢補充吧。