pandas DataFrame 常用技巧 -- dataframe String互相轉換
阿新 • • 發佈:2018-12-20
pandas DataFrame 常用技巧 – dataframe String互相轉換
import pandas as pd import StringIO data = { 1:{'a':1, 'b':2, 'c':3} 2:{'a':2, 'b'3, 'c':4} } df = pd.DataFrame(data = data) # 初始化一個dataframe df_string = StringIO(df.to_csv()) # 這裡不能先建立好StringIO物件,再向裡面寫string, 否則會報錯 del df print(df) df = pd.read_csv(df_string)
以上程式碼是將dataframe物件暫存到一個記憶體檔案中, 當我們需要的時候,再從記憶體檔案中還原出原始的dataframe。 這樣做有什麼好處那?比如,在使用redis作為暫存的時候,我們無法將dataframe直接儲存到redis,需要先轉換成 string型別。但是,pandas並沒有提供直接從string轉換回dataframe的工具,這時候,我們就可以使用記憶體檔案,然後 利用pandas的read_csv方法來幫我們實現這個任務了。
這個時候,一定已經有人想到了,是不是使用pickle來做這件事請更好那?ok,給大家看看程式碼:
import pickle df_bytes = pickle.dumps(df) del df df = pickle.loads(df_bytes)
簡單,完美,ok