2016-11-18 2 views
1

Rではdplyr::arrangeを使用して一時変数でデータフレームをソートできます。例えば、nycflights13パッケージでNYC flightsデータセットを使用して、私はdistanceair_time列から、この値を計算することによって速度で並べ替えることができます。Pandasデータフレームの値を一時変数でソート

library(nycflights13) 
arrange(flights, distance/air_time) 

は、それが明示的に新しいを作成せずにパンダ(でこれを達成することが可能です列をソートしてから、この列をもう一度削除します)。

答えて

1

は、私が最初のソートにSeries.sort_valuesを使用することができ、それがreindexすることにより可能であると思う:

df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9], 
        'D':[1,3,5], 
        'E':[5,3,6], 
        'F':[7,4,3]}) 

print (df) 
    A B C D E F 
0 1 4 7 1 5 7 
1 2 5 8 3 3 4 
2 3 6 9 5 6 3 

print (df.A/df.D) 
0 1.000000 
1 0.666667 
2 0.600000 
dtype: float64 

print ((df.A/df.D).sort_values()) 
2 0.600000 
1 0.666667 
0 1.000000 
dtype: float64 

print (df.reindex((df.A/df.D).sort_values().index)) 
    A B C D E F 
2 3 6 9 5 6 3 
1 2 5 8 3 3 4 
0 1 4 7 1 5 7 
+0

ニース、これは動作します! 'フライト'データフレームをベロシティでソートする構文は次のとおりです: 'flights.reindex((flights.distance/flights.air_time).sort_values(ascending = False).index)' – cbrnr

+0

ありがとうございます。あなたのサンプルデータがありません。(私は 'R'ユーザではないので、サンプルデータを作成します) – jezrael

+0

ありがとう@jezrael - この特定の例を実行する場合のために、GitHubにデータを書きました:https:// github。 com/cbrnr/py4ds/blob/master/flights.csv – cbrnr

関連する問題