先取少量資料跑**,確保**沒有語法和邏輯錯誤,再放到大量資料上面跑。
使用pandas的dataframe表示資料的時候,對於int和float的預設為int64和float64位,但實際可能不需要這樣的高精度表示。可通過以下**節省記憶體:
def reduce_mem_usage(df):
start_mem = df.memory_usage().sum() / (1024 ** 3)
print('memory usage of dataframe is gb'.format(start_mem))
for col in df.columns:
col_type = df[col].dtype
if col_type != object:
min_val = df[col].min()
max_val = df[col].max()
if str(col_type).startswith('int'):
type_list = [np.int8, np.int16, np.int32, np.int64]
for i in type_list:
if min_val >= np.iinfo(i).min and max_val <= np.iinfo(i).max:
df[col] = df[col].astype(i)
break
else:
type_list = [np.float16, np.float32, np.float64]
for i in type_list:
if min_val >= np.iinfo(i).min and max_val <= np.iinfo(i).max:
df[col] = df[col].astype(i)
break
end_mem = df.memory_usage().sum() / (1024 ** 3)
print('memory usage of dataframe is gb'.format(end_mem))
return df
使用pandas的read_csv或者excel讀取大檔案時,在讀取過程**現oom(out of memory,記憶體溢位),但是結合watch -n 0.1 free -hm和已讀取的行數佔比來檢視的話,發現需要記憶體超出實際記憶體大約佔10%左右,可通過設定chunksize進行分塊讀取(如總行數的1/10)。 python 資料處理基本操作 持續更新
data pd.read csv path,header,names 返回dataframe物件 畫圖data.plt kind scatter x y scatter散點圖 plt.show str.strip char 用於移除字串 頭尾 指定的字元 預設為空格 或字串行。split 分隔imp...
大資料處理
大資料處理的流程主要包括以下四個環節 採集 匯入 預處理 統計 分析 挖掘,下面針對這四環節進行簡單闡述。大資料處理之一 採集 在大資料的採集過程中,其主要特點和挑戰是併發數高,因為同時有可能會有成千上萬的使用者來進行訪問和操作,比如火車票售票 和 它們併發的訪問量在峰值時達到上百萬,所以需要在採集...
大資料處理隨筆
1.mssql當資料庫資料超過1000萬的時候超時是正常的,所以當表資料到1000萬時候注意delete 2.今天遇到資料庫時間格式2014021000 當然是int型別哦 3.聯合索引使用 開始時間與結束時間這樣一起查詢的要建成索引 4.訂閱資料庫,只可以查詢操作,這樣的話可以在這個表上面建立索引...