2016-07-25 118 views
1

我想使用groupby開始分析一個相當大的數據集,並且我的許多調用需要使用範圍方法並使用列標題的整數。使用numpy數組調用列索引

我試圖獲得大量的這些數據來檢查,我使用np.arange的字段。

我用數據框以下樣式:

df = pd.DataFrame({1 : ['foo', 'bar', 'foo', 'bar', 
           'foo', 'bar', 'foo', 'foo'], 
         2 : ['one', 'one', 'two', 'three', 
           'two', 'two', 'one', 'three'], 
         3 : np.random.randn(8), 
         4 : np.random.randn(8)}) 

使用了以下工作:

names = np.arange(1,3) 
x=df.groupby([1,2]) 

,但我得到以下錯誤,當我使用:

names = np.arange(1,3) 
x=df.groupby(names) 

石斑和軸線長度必須相同

目前尚不清楚爲什麼一個工作,但其他不,但尤其是因爲簡單地調用df[names]產生我所期望的。

我有一個數組,這是1474x480,這使得重命名列的任何東西,但x-y座標太困難。

這是一個簡單的x-y-z掃描,它給出3個值:行索引= x,列索引= y和值= z。數據全是數字,np.float64。

我很抱歉,如果這是多餘的,但我在這裏找不到類似的情況。

回答

2

試試這個:

names = np.arange(1,3) 
x=df.groupby(names.tolist()) 


print type([1, 2]) 
print type(np.arange(1,3)) 
print type(np.arange(1,3).tolist()) 

<type 'list'> 
<type 'numpy.ndarray'> 
<type 'list'> 
+0

輝煌。而我走了... – double0darbo

+1

你也可以upvote,也。 – Merlin