2014-04-02 116 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])] 
相關問題