Pandas 使用方法總結(jié)

  1. index: 如何定義名稱,如何回復(fù)從0到N排序, 如何刪除/增加某一行,如何根據(jù)條件獲取某些行

    • 如何回復(fù)從0到N排序:frm.rename(index=lambda x: x + 1)/frm.reset_index(drop=True)
    • 如何刪除某一行 frm.drop([x,y]),
    • 根據(jù)條件獲取某些行 :frm['col'].isin([key])
    • 根據(jù)條件獲取某些行:frm['col'].str.contains(正則表達(dá)式內(nèi)容)
    • 根據(jù)條件獲取某些行 :frm[frm['col']>xx]
  2. columns: 如何改變名稱,如何刪除/增加某一列, 如何根據(jù)條件獲取某些列

    • 改變列名:frm.rename(columns={'old_name': 'new_ name'})
    • 改變列名 :frm.columns = ['a','b','c']
    • 增加列 :df.insert(idx, col_name, value)
    • 增加列: frm['new_col'] = list
    • 刪除列: frm.drop(['col'],axis=1)
    • 根據(jù)條件獲取某些列 frm.groupby(col) frm.groupby([col1,col2])
  3. series: 如何加減乘除? 如何實(shí)現(xiàn)向量點(diǎn)乘?如何去重? 如何轉(zhuǎn)化為dict和list? 如何對所有的元素執(zhí)行某個函數(shù)從而獲取新的series? 如何排序?如何求平均值,最大值,最小值.

    • 加減乘除:series +-x/ xx
    • 向量點(diǎn)乘:pd.dot(series1, series2)
    • 去重:series.unique()
    • dict,list:
      • dict返回的是dict of dict;list返回的是列表的字典;series返回的是序列的字典;records返回的是字典的列表
      • series1 = series.to_dict(orient='dict')
      • series2 = series.to_dict(orient='list')
      • series3 = series.to_dict(orient='series')
      • series4 = series.to_dict(orient='records')
to_dict的各種情況
- 'dict' (default) : dict like {column -> {index -> value}}
- 'list' : dict like {column -> [values]}
- 'series' : dict like {column -> Series(values)}
- 'split' : dict like {'index' -> [index], 'columns' -> [columns], 'data' -> [values]}
- 'records' : list like [{column -> value}, ... , {column -> value}]
- 'index' : dict like {index -> {column -> value}}
  - 對DataFrame中的每一列應(yīng)用函數(shù)func: series.apply(func)
  - 對DataFrame中的每一行應(yīng)用函數(shù)func: series.apply(func,axis=1):
  - 排序: series.sort_values()
  - 最大值: series.max()
  - 最小值: series.min()
  - 平均值: series.mean()
  1. loc: 如何根據(jù)行序號來獲取某一行? 如何根據(jù)行列值獲取一個值?
    • 根據(jù)行序號來獲取某一行: frm.iloc[x]
    • 如何根據(jù)行列值獲取一個值:frm.loc[x,y]/frm.loc[i:col]
  2. frm: 如何從dict,list中創(chuàng)建frm,如何實(shí)現(xiàn)兩個frame之間的合并? 兩個frm之間如何加減乘除?
    • 從dict中創(chuàng)建frm: pd.DataFrame.from_dict/pd.DataFrame(dict)
      -用dict的list創(chuàng)建frm:pd.DataFrame.from_records(dict_list)
    • 從dict,list中創(chuàng)建frm: pd.DataFrame(list)
    • 實(shí)現(xiàn)兩個frame之間的合并:pd.merge(frm1.frm2)
    • 兩個frm之間加減乘除: frm1 +-*/ frm2
  3. values: 是什么數(shù)據(jù)類型? 如何實(shí)現(xiàn)兩個values之間的矩陣乘法?
    • ndarray
    • 矩陣乘法:(values1.T)*values2
  4. date: 如何獲取一段連續(xù)的日期?
    • pd.date_range('1900/1/30', periods=xx)
  5. 細(xì)節(jié): 把一個整數(shù)列的某一個元素賦值為None會發(fā)生什么
    • 這一個整數(shù)列都變成float格式
  6. 如何分組求和,求平均?(利用groupby);
    • 分組求和:frm.groupby([col]).sum() :對col列下的值所在行的其他列的值進(jìn)行求和
    • 分組求平均:frm.groupby([col]).mean()
      group_by用法可見此鏈接pandas groupby用法
  7. 如何對一列轉(zhuǎn)化為類型?(用astype)
    • 轉(zhuǎn)化類型:frm[[col]] = frm[[col]].astype(type)
  8. 如何將dataframe保存到本地html或者pickle文件?
    • frm.to_html()
    • frm.to_pickle()
  9. 如何更改index的col名?
    • frm.index.name = "new_name"
  10. 如何更改column的順序?
    • frm = frm.reindex(columns = [....])
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容