從基利安三重的bcolz mailing list:通過pandas.read_csv()
在塊
讀CSV,從Python對象D類的字符串列轉換爲固定長度numpy的D類,比如「S20」,然後追加爲numpy的陣列到ctable 。
此外,設置chunklen=1000000
(或類似)在ctable創作這將避免/ data文件夾下創建數百個文件(可能不是最佳的,雖然壓縮)
上述2步的工作很適合我(20元行,40-60列)。
試試這個:
df0 = ddf.from_castra("data.castra")
df = odo.odo(df0, pd.DataFrame)
names = df.columns.tolist()
types = ['float32', 'float32', 'S20'] # adjust 'S20' to your max string length needs
cols = [bcolz.carray(df[c].values, dtype=dt) for c, dt in zip(names, types)]
ct = bcolz.zeros(0, dtype=np.dtype(zip(names, types)),
mode='w', chunklen=1000000,
rootdir="data.bcolz")
ct.append(cols)