pandas使用

寫這篇文章,主要是想按照必定的邏輯順總結一下本身作項目以來,序用到過的pandas的知識點.
雖然pandas官方文檔上各個方面都寫的很清楚,可是仍是想本身再寫一份,一個是想做爲我的梳理,另外也能夠把最常常使用的部分拎出來,更清晰一些.html

不定時更新.python

數據的IO

MySQL

1.讀mysq數據mysql

df = pd.read_sql(sql, db.conn)

其中sql是須要的sql語句,db是建立的數據庫鏈接對象.sql

通常來講,這樣基本就能知足需求. 數據庫

額外的參數app

1. chunksize : int, default None
    當數據量比較大,或者想將讀入的數據分割成指定行數的一個個block,則能夠設置這個參數.其會返回一個迭代器,迭代器中的元素爲chunksize行數的記錄.
    
 2. index_col : string or list of strings, optional, default: None
    能夠設置某些列爲索引列.

pandas.read_sql文檔函數

2.寫mysql數據excel

engine = create_engine('mysql+pymysql://root:password@localhost/schemeName', echo=False)

df.to_sql(tablename, engine, if_exists='append', index=index)

將df的數據寫入到數據庫表中.pandas文檔中提供的例子是SQlite的數據庫,因此不能直接用db.conn去充當engine.code

參數說明htm

1. if_exists: {‘fail’, ‘replace’, ‘append’}, default ‘fail’
當數據庫中存在要寫入的table時,三種處理方式
fail:那麼寫入失敗
replace:把原來的table刪掉,寫入新的
append:在原來的table上,添加新的記錄

2. index : boolean, default True
當設爲True時,會把df的index當成一列寫入數據庫.

pandas.DataFrame.to_sql文檔

csv

1.讀數據

df = pd.read_csv(path + filename, header=None, names=[name1, name2])

參數說明

1.header: int or list of ints, default ‘infer’
用來指定行號做爲數據的開始和列的名稱.header設爲None是告訴其打開的文件裏沒有列名.若是打開的文件有列名的時候,能夠不設置這一項,這樣系統會自動推測出列名.

2.names : array-like, default None
顯示地指定列的名稱.當header是None的時候,須要加上這個.

關於這個函數,可設置的參數還比較多,不過目前使用的也就這幾個,因此先不描述其餘了.

pandas.read_csv文檔

2.寫數據

df.to_csv(path+filename, index=False, header=header, mode='a')

參數說明

1.index: boolean, default True
說明是否須要寫入df的index.

2.header : boolean or list of string, default True
說明是否要把列名寫入.也能夠在這裏從新設置寫入的列名.

3.mode : str,default ‘w’
python的寫入模式.

pandas.DataFrame.to_csv文檔

excel

直接建立dateFrame

數據的選擇

簡單選擇

  1. 選擇部分行
  2. 選擇部分列
  3. 選擇數值

按照條件進行篩選

  1. 單一條件篩選
  2. 多個條件篩選

數據的聚合值描述

數據的修改

索引信息的修改

數據的合併

  1. concat
  2. merge
  3. join

數據的可視化

時間序列相關

數據採樣

相關文章
相關標籤/搜索