python—DataFrame的儲存
Pandas中的DataFrame資料既可以儲存在SQL資料庫中,也可以直接儲存在CSV檔案中。
資料庫
1. dataframe.to_sql()函式將DataFrame資料儲存到資料庫中。
name :資料表的名稱, string, Name of SQL table
con : 資料庫的連結,SQLAlchemy engine or DBAPI2 connection (legacy mode)
if_exists : 如果SQL表已經存在的處理方式,{‘fail’, ‘replace’, ‘append’}, default ‘fail’
取消儲存, fail: If table exists, do nothing.
替換SQL表,replace: If table exists, drop it, recreate it, and insert data.
附加在SQL表後,append: If table exists, insert data. Create if does not exist.
index: 是否將行標籤存入SQL表,boolean, default True, Write DataFrame index as a column.
index_label: 如果儲存行標籤,指定該列的名稱,string or sequence, default None,
2. pandas.read_sql()函式將SQL表讀入DataFrame。
sql : 要讀取的SQL表,string, database table name.
con : 與資料庫的連結,SQLAlchemy engine
index_col: 指定用於行標籤的列,string, optional, column name to use as index for the returned DataFrame object.
CSV檔案
1. dataframe.to_csv()函式將DataFrame資料儲存在指定的csv檔案中。該函式常用的引數有
columns : 指定需要儲存的列,Columns to write
header : 是否把列的名字寫入CSV檔案, boolean, default True. Write out column names. If a list of string is given it is assumed to be aliases for the column names
index : 是否把index寫入CSV檔案,boolean, default True.Write row labels (index)
index_label : 如果將index寫入CSV檔案,那麼給出index列的標籤(列的名字),string or sequence, or False, default None.
2. pandas.read_csv()函式將CSV檔案中的資料讀入DataFrame。
header : CSV檔案的列名所在的行, int, list of ints. Row number(s) to use as the column names, and the start of the data. Defaults to 0 if no names passed, otherwise None.
index_col : 指定行標籤所在的列,int or sequence or False, default None. Column to use as the row labels of the DataFrame.
names : 列的名稱,array-like. List of column names to use.
總結:
相同點:
1. 儲存時,CSV和SQL都預設儲存行標籤(index),因此需要指定儲存行標籤列的名字,index_label。
2. 讀取時,CSV和SQL都需要指定哪一列是行標籤(index)列,index_col,不同的是CSV是通過列的序號指定,SQL是通過列的名字指定。
不同點:
1. SQL一定會儲存列標籤,CSV可以儲存列標籤也可以不儲存列標籤。