2017-12-14 3 views
0

의 질서를 유지하면서 나는이 SO 질문에 유사한 방식으로 DataFrame를 정렬하고 싶은이 : Sorting entire csv by frequency of occurence in one column정렬 DataFrame, 다른 열

그러나, 나는이 발생하고있어 하나의 문제는 계산이다 고유 보장되지 않으며,이 경우 행이 인터리브됩니다에 다음 DataFrame 감안할 때

(나는 위의 질문에 EdChum에 의해 제안 된 방법을 사용하고 있습니다) : 나는 woul 후

cluster_id,distance,url 
1,0.15,aaa.com 
1,0.25,bbb.com 
2,0.05,ccc.com 
2,0.10,ccc.com 
7,0.1,abc.com 
7,0.2,def.com 
7,0.3,xyz.com 

을 이 같은 D가되게합니다 : 열 CLUSTER_ID 거리

cluster_id,distance,url 
7,0.1,abc.com 
7,0.2,def.com 
7,0.3,xyz.com 
1,0.15,aaa.com 
1,0.25,bbb.com 
2,0.05,ccc.com 
2,0.10,ccc.com 

참고 순서대로 여전히 "CLUSTER_ID"의 발생에 의해 정렬 후

+0

모든 열에 정렬되어 있습니까? (오, 미안 해요!) –

+0

@JoseA. 내가 너를 이해하는지 모르겠다. 정렬 후 나는 "cluster_id"의 ​​발생으로 정렬 한 후에 cluster_id와 distance 열이 여전히 순서대로 유지되기를 바랍니다. – clwen

+0

예, 미안하지만 질문을 잘못 읽었습니다. –

답변

2

우리는 cluster_id으로 정렬하고 새로운 column'G 수 '

df.assign(G=df.groupby('cluster_id').cluster_id.transform('count')).sort_values(['G','cluster_id'],ascending=[False,True]).drop('G',1) 
Out[248]: 
    cluster_id distance  url 
4   7  0.10 abc.com 
5   7  0.20 def.com 
6   7  0.30 xyz.com 
0   1  0.15 aaa.com 
1   1  0.25 bbb.com 
2   2  0.05 ccc.com 
3   2  0.10 ccc.com 
+0

새로운 열 G 란 무엇입니까? 발생 횟수? – clwen

+0

@clwen 여기'G = df.groupby ('cluster_id'). cluster_id.transform ('count')', 발생 횟수 – Wen

+0

안정입니까? [Documentation] (https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.sort_values.html)은 그것에 대해 명확하지 않습니다. 어쨌든 나는 그것이 OP의 요점인지 아니면 내가 그것을 missreaded (다시) 모르겠다. –