私はある列で特定の順序でソートし、別の列で昇順に並べ替える必要のあるパンダDataFrameを持っています。 両方の列に繰り返し値があります。 それは多かれ少なかれ、次のようになります。今カスタムオーダーを使用してDataFrameを2列でソートする方法は?
import pandas as pd
df = pd.DataFrame()
df[0] = pd.Series([ 'a', 'aa', 'c' ] * 2)
df[1] = pd.Series([ 1, 2 ] * 3)
df[2] = pd.Series(range(6))
print(df)
0 1 2
0 a 1 0
1 aa 2 1
2 c 1 2
3 a 2 3
4 aa 1 4
5 c 2 5
ではなく、アルファベット順に、私は列0と1で注文する必要があると言う:列0は最初の順序に従う必要があります。
どうorder = [ 'a', 'c', 'aa' ]
私はそれをしますか?
私はそれがこのようにソートしているしたいと思います:あなたはどの物資、この目的のためにパンダのカテゴリシリーズを使用することができるのpython 3.5.2を使用して
print(sorted_df)
0 1 2
0 a 1 0
1 a 2 3
2 c 1 2
3 c 2 5
4 aa 1 4
5 aa 2 1
、パンダ0.18.1
このようにしたい場合は、追加の列th atは '0'列の文字列の長さを保持し、最初に文字列の長さでソートし、次に文字列自身でソートします。 – Khris