1. 程式人生 > >python—DataFrame的儲存

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 TrueWrite DataFrame index as a column.

index_label: 如果儲存行標籤,指定該列的名稱,string or sequence, default None, 

Column label for index column(s). 

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可以儲存列標籤也可以不儲存列標籤。​