2017-05-10 9 views
2

私は、次のデータ型があります。以下のデータを取得するにはパンダの2つのフィールドを並べ替えるには?

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"] 

を:

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」と出発時刻の両方に基づいてデータ型をソートする方法は?

私は、次のコードを試してみました、それが仕事をdidntの:

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

私は次のエラーを取得する:

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

ので、慣れていないが、複数の値によってソートするときは常に、あなたが安定した並べ替えを使用していることを確認してください。 – arboreal84

答えて

1

あなたがパラメータinplace=Trueともsort_valuesby秒を削除した場合に割り当てる削除必要があると思われます:

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 
関連する問題