2016-07-25 119 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