2
我有一個熊貓DataFrame,我需要在一列中按特定順序排序,然後在另一列中上升。 這兩列都有重複的值。 它看起來或多或少是這樣的:如何使用自定義順序將數據框排序兩列?
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' ]
如何我要這樣做嗎?
我想有它排序是這樣的:
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
使用Python 3.5.2,熊貓0.18.1
如果你想這樣做,你可以創建一個額外的列th在你的'0'列保存你的字符串的長度,然後首先按字符串的長度排序,然後由字符串自己排序。 – Khris