pandas在處理千萬行級別的資料中有非常高的實用價值,通過將文字資料讀取載入到記憶體中,在利用pandas進行資料處理運算,效率非常高。(excel表適合處理幾十萬行級別的資料,pandas則適用於處理千萬級別的資料)。
一般情況下千萬級別的資料動輒在幾個gb以上,因此建議電腦記憶體在16gb以上為佳。python在處理超過記憶體能力的大資料時,雖說程式不會中斷,但對執行效率影響很大。
在pandas資料讀取和處理中一下**為常用**:
import pandas as pd '必選,載入pandas
import numpy as np '通常必選,如產生隨機數
import gc '可選,用於記憶體管理
import time '可選,如用於計時
reader = pd.read_table('file1.txt',header=none,names=['col_name1','col_name2',...],sep='|',index_col=0) '載入檔案到記憶體,載入的方式可以通過引數進行靈活控制
reader[列號id].value_counts().to_csv('檔名.csv') '類似於excel中的countif,執行效率比excel高出非常多!
reader[列id號].sum() '對不同的列進行統計分析
pd.merge(df1,df2,on='msisdn',how='outer').to_csv('outer.csv',index=false) '合併兩個dataframe,去交集,同時輸出到outer.csv檔案,且不輸出索引號。
reader.drop_duplicates([列id號]).to_csv('檔名.csv') '將除重後的資料存入單獨檔案裡
reader.sort([列id號], ascending=false,其他條件...) '按某列值對資料進行排序
reader.loc(reader[列id號] ==/!=/> '條件值', 其他條件...)
此外,除簡單統計外,pandas還提供如下統計計算:
count
非 na 值的數量
describe
針對 series 或 df 的列計算匯**計
min , max
最小值和最大值
argmin , argmax
最小值和最大值的索引位置(整數)
idxmin , idxmax
最小值和最大值的索引值
quantile
樣本分位數(0 到 1)
sum求和
mean
均值median
中位數mad
根據均值計算平均絕對離差
var
方差std
標準差skew
樣本值的偏度(三階矩)
kurt
樣本值的峰度(四階矩)
cumsum
樣本值的累計和
cummin , cummax
樣本值的累計最大值和累計最小值
cumprod
樣本值的累計積
diff
計算一階差分(對時間序列很有用)
pct_change
計算百分數變化
python庫 pandas 文字檔案讀取
read table read csv filepath or buffer 檔案路徑 sep t 分隔符.設定為n,將嘗試自動確定 delimiter n sep的備用引數名 header infer int用作列名稱的行號 ints 若傳入列表則表示這幾行都將作為列標籤 none 檔案中不包含標...
pandas檔案讀取
改變工作路徑 import os print os.getcwd 列印當前工作目錄 print os.listdir os.chdir c users administrator import pandas as pd for price in dfs1 print price 讀取資料是指定乙個列...
pandas讀取資料
導庫 import pandas as pd fpath d 123.csv 讀取資料 book pd.read csv fpath 檢視全部內容 book idusename course01 張三7512 李四8023 王二8334 張華9045 小明7856 小紅7667 小七90 檢視前5行...