資料處理 pandas資料處理優化方法小結

2021-08-29 20:13:02 字數 1542 閱讀 4147

資料處理時使用最多的就是pandas庫,pandas在資料處理方面很強大,整合了資料處理和資料視覺化。

pandas的視覺化使用的是matplotlib。

回到主題

計算資料的某個欄位的所有值,對其欄位所有值進行運算

處理的字段資料為時間戳,需要計算該時間戳距離現在的時間,單位為天。

一般方法:

使用現在的時間戳減去整個欄位的值,得到距離現在的秒數,最後換算成天。

teble.loc[:,'test'] = (1540281246 - table['test'])/(3600*24)
優化方法:

先使用pandas的時間處理方法,把時間戳轉化為時間字串

然後使用datetime庫獲取當前時間,最後減去生成的時間字串。

table['test'] = pd.to_datetime(table['time'],unit='s')

table['test'] = (datetime.datetime.now() - table['test']).dt.days

改優化方法處理速度為一般方法的兩倍。

優化思路:

資料處理時盡量避免在字段上直接進行運算,每次運算的運算代價極為昂貴。

pandas欄位整體資料運算處理慢,應該避免。

根據欄位的類別,計算其類別對應的某個欄位的值的總和。

一般方法:

使用for對類別進行遍歷,每次遍歷都計算類別對應某字段的和。

for i in table1.index.values:

table2.loc[i,'class'] = int(table1.loc[i,'value'].sum())

優化方法:

使用pandas的groupby方法對類別進行歸類,然後計算總和。

table.groupby('class',as_index = false)['value'].sum()
優化思路:

資料處理時盡量避免使用for等遍歷計算與賦值操作,這種操作極為消耗記憶體資源和計算資源。

盡量使用pandas內建的方法。

計算資料表中幾個欄位的和,生成新字段。

一般方法:

for i in table.index.values:

table.loc[i,'t'] = table.loc[i,'t1']+table.loc[i,'t2']+table.loc[i,'t3']

優化方法:

table['t'] = table['t1'] + table['t2'] + table['t3']
優化思路如問題2所述

爬蟲 資料處理 pandas資料處理

使用duplicated 函式檢測重複的行,返回元素為布林型別的series物件,每個元素對應一行,如果該行不是第一次出現,則元素為true keep引數 指定保留哪一重複的行資料 dataframe替換操作 使用df.std 函式可以求得dataframe物件每一列的標準差 資料清洗清洗重複值 清...

pandas 資料處理

pandas中資料可以分為series,dataframe,panel分別表示一維至三維資料。其中在構造時,index表示行名,columns表示列名 構造方式 s pd.series data index index s pd series np random randn 5 index a b ...

pandas資料處理

dataframe.duplicated subset none,keep first 判斷dataframe中的資料是否有重複 必須一行中所有資料都重複才算重複,只能判斷行,不能判斷列 返回series dataframe.drop duplicates subset none,keep firs...