2017-05-10 2 views
2

나는 다음과 같은 데이터 타입이 있습니다팬더에서 두 개의 필드를 정렬하는 방법은 무엇입니까?

id    arrival_time    departure_time 
SA3342     0     2016-05-19 08:25:00 
ASD345   2016-05-19 13:50:00  2016-05-19 16:00:00 
SFZX34   2016-05-19 21:25:00  2016-05-20 07:45:00 
ASDFS5     0    2016-05-24 12:50:00 
SDFDS4   2016-05-24 18:30:00  2016-05-25 23:00:00 
SFDDSF1   2016-05-26 12:15:00  2016-05-26 19:45:00 

방법 모두 "ID"과 출발 시간을 기준으로 데이터 유형을 정렬 :

id=["SA3342","ASD345","SFZX34","ASDFS5","SDFDS4","SFDDSF1"] 
arrival_time = ["0"," 2016-05-19 13:50:00","2016-05-19 21:25:00","0","2016-05-24 18:30:00","2016-05-26 12:15:00"] 
departure_time = ["2016-05-19 08:25:00","2016-05-19 16:00:00","2016-05-20 07:45:00","2016-05-24 12:50:00","2016-05-25 23:00:00","2016-05-26 19:45:00"] 

는 다음과 같은 데이터를 얻기 위해를?

나는 다음 코드를 시도하고 작업 일부러 :

TypeError: sort_values() got multiple values for keyword argument 'by' 
+0

그래서 이것을 달성하는 방법을 잘 알고 있지만, 항상 안정된 종류를 사용하고 있는지 확인 하나 개 이상의 값으로 정렬 할 때하지 않습니다. – arboreal84

답변

1

당신이 또한 매개 변수 inplace=True하고 sort_values에서 두 번째 by을 제거하면 지정 제거해야 할 것 : 나는 다음과 같은 오류가

df = df.sort_values(['id', 'departure_time'], inplace=True, by='date')  

을 :

df.sort_values(by=['id', 'departure_time'], inplace=True)  
print (df) 
     id   arrival_time  departure_time 
1 ASD345 2016-05-19 13:50:00 2016-05-19 16:00:00 
3 ASDFS5      0 2016-05-24 12:50:00 
0 SA3342      0 2016-05-19 08:25:00 
4 SDFDS4 2016-05-24 18:30:00 2016-05-25 23:00:00 
5 SFDDSF1 2016-05-26 12:15:00 2016-05-26 19:45:00 
2 SFZX34 2016-05-19 21:25:00 2016-05-20 07:45:00 

또는 inplace=True를 제거하고 두 번째 by :

df = df.sort_values(by=['id', 'departure_time'])  
print (df) 
     id   arrival_time  departure_time 
1 ASD345 2016-05-19 13:50:00 2016-05-19 16:00:00 
3 ASDFS5      0 2016-05-24 12:50:00 
0 SA3342      0 2016-05-19 08:25:00 
4 SDFDS4 2016-05-24 18:30:00 2016-05-25 23:00:00 
5 SFDDSF1 2016-05-26 12:15:00 2016-05-26 19:45:00 
2 SFZX34 2016-05-19 21:25:00 2016-05-20 07:45:00 
관련 문제