1. 程式人生 > >pandas DataFrame 常用技巧 -- dataframe String互相轉換

pandas DataFrame 常用技巧 -- dataframe String互相轉換

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