2014-10-06 3 views
0

I는 다음과 같습니다 DF가 주어진 포함하지 않습니다팬더 파이썬 : 정렬 dataframe하지만 행

Label      Base 
Label       
Très à gauche    4.51 
Très à droite    10.49 
Ni à gauche, ni à droite 24.21 
Je ne sais pas    5.60 
Au centre     8.69 
A gauche     23.74 
A droite     22.75 

내가 순서를 acsending이를 정렬하고 싶지만 내가 원하는 해달라고 "A 어색한"와 "A에게 droite "정렬에 포함됩니다.

아래 코드는 내가 원하는 것을 수행하지만 정렬에서 "Gauche"및 "Aroite"를 제외하는 방법을 잘 모르겠습니다.

df_table = df_table.sort(columns="Base",ascending=True) 

예상 출력

Label      Base 
Label       
Très à gauche    4.51 
Je ne sais pas    5.60 
Au centre     8.69 
Très à droite    10.49 
Ni à gauche, ni à droite 24.21 
A gauche     23.74 
A droite     22.75 

감사

답변

1

당신은 아마 당신이 당신의 정렬 작업에 포함하지 않는 행을 필터링 할 :

d = df_table 
condition = (d.Label=='A gauche') | (d.Label=='A droite') 
excluded = d[condition] 
included = d[~condition] 

어느 다음 수 분류 될

sorted = included.sort(columns="Base",ascending=True) 

그리고 당신은 당신의 데이터 프레임의 끝에 추가 제외 된 행을 원하는 경우, 당신이 할 수있는이에 대한

pandas.concat([sorted,excluded]) 
+0

감사합니다. Q - 정렬하지 않으려는 행이 가운데에 있다고 가정하면 행 3과 5를 말하면 어떻게됩니까? –

+0

당신은 더 많은 분할과 연결을해야 할 수도 있고, 어떤 종류의 가중치 함수를 도입 할 수도 있습니다. 아마 '정렬을 마쳤을 때이 행을 위치 3에 놓는다'는 의미일까요 '정렬을 마쳤을 때이 행을이 행 뒤에 놓을 지'에 달려있을 것입니다. – trvrm