2015-04-17 56 views

回答

1

你可以依次加載每個山坳,然後調用.nunique

In [227]: 

import io 
t="""a,b,c 
0,1,1 
0,2,1 
1,3,1 
2,4,1 
3,5,6""" 
# get the columns first 
cols = pd.read_csv(io.StringIO(t), nrows=1).columns 
​ 
d = {} 
for col in cols: 
    df = pd.read_csv(io.StringIO(t), usecols=col) 
    d[col] = df[col].nunique() 
d 
Out[227]: 
{'a': 4, 'b': 5, 'c': 2} 

這應該然後生成唯一值的數量的類型的字典爲每列

這是假設你能夠處理加載從你的10GB文件一次一列

+0

我試圖做到這一點,但加載每一列的時間是安靜的大,我有2000列:( – Donbeo

+0

那麼你可以一次穿過100列的列或東西 – EdChum

+0

我知道有可能以區塊的形式讀取數據幀。我想知道是否可以在僅部分讀入內存的數據幀上使用'apply_along_axis' – Donbeo