2014-04-02 51 views
0

因此,我试图找出一种方法来组合第一列中具有相同值的数据中的所有行。从第一列中的数据中按相同的值对列进行分组

所以说我有:

col 1:  col 2: 
0   3 
0   4 
0   5 
1   9 
1   10 
2   7 

我想请使用一些基本的Python或numpy的从第1栏读取数据,发现所有的有0和组那些在列表一起排了或者其他东西,然后是所有在col1中有1的等等。等等..我能够弄清楚,如果数字刚刚在col 1中增加1,但我的输入有任何形式的浮动,所以这是不可靠的。

+0

发表您的码。 –

+0

我已经在过去使用过这种方法,在搭售时避免使用'np.unique'或去熊猫或itertools:'np.split(col2,np.where(np.diff(col1))[0] +1 )' – askewchan

回答

1

我已经在过去使用此,当试图避免使用掩模与for u in np.unique或将大熊猫或itertools.groupby

np.split(col2, np.where(np.diff(col1))[0]+1) 

Works的花车在col1

col1 = np.sort(np.repeat(np.random.rand(4), np.random.randint(2,4,4))) 
col2 = np.arange(len(col1)) 

col1 
#array([ 0.39855008, 0.39855008, 0.84331316, 0.84331316, 0.94124952, 
#  0.94124952, 0.94124952, 0.9480605 , 0.9480605 , 0.9480605 ]) 

np.split(col2, np.where(np.diff(col1))[0]+1) 
#[array([0, 1]), array([2, 3]), array([4, 5, 6]), array([7, 8, 9])] 
相关问题