2015-11-24 16 views
1

我有一個需要從一個dailydata文件每3個小時更新一個巨大的泡菜文件(CSV文件)。從數據幀更新泡菜文件值

有一個名爲TRX_DATE兩場和TIME_STAMP在像分別24/11/2015和24/11/2015 10時19分02秒每兩個有值。(也是50個additionl領域是有)

等什麼我做的是先讀巨大的泡菜到數據幀。然後通過與TRX_DATE字段比較來刪除今天的任何值。

然後讀取csv文件到另一個數據幀。然後附加這兩個數據幀並再次創建新的pickle。

我的腳本看起來像

import pandas as pd 
import datetime as dt 
import pickle 

df = pd.read_pickle('hugedata pickle') 
Today = dt.datetime.today() 
df = df[(df.TRX_DATE > Today)] #delete any entries for today in main pickle 

df1 = pd.read_csv(daily data csv file) 

df = df.append(df1,ignore_index=True) 

df.to_pickle('same huge data pickle') 

問題如下

1.it正在巨大的內存以及讀取巨大的泡菜的時間。

2.我需要追加DF1從DF DF和僅列應僅停留,如果從DF1任何新列追加得到它應該排除。但是我在這麼多地方得到了具有NUN值的新列值。

所以需要對這些東西

1.is有辦法幫助,我將只讀取小型CSV和追加到泡菜文件...(或讀取泡菜是強制性的)

2。可以像將csv轉換爲泡菜和合並兩個泡菜一樣完成。 (實際上從來沒有用過)

3.如何從TIME_STAMP字段中讀取時間並獲取兩個時間戳之間的數據(通過TIME_STAMP過濾)。並將其上傳到主pickle.previously我按TRX_DATE值過濾。

有沒有更好的辦法---請建議。

+0

爲什麼你使用'read_pickle'而不是'read_csv'? – jezrael

+0

雖然我正在閱讀從pickle我使用read_pickle,而從csv我使用read_csv – Satya

回答

2

HDF5爲你正在嘗試做製作。

import tables 
import numpy as np 
from pandas import HDFStore,DataFrame 

df.to_hdf('test.h5',key='test1') # create an hdf5 file 

pd.read_hdf('test.h5',key='test1') # read an hdf5 file 

df.to_hdf()默認爲追加模式。