資料處理時使用最多的就是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...