我是一名有用的助手,可以为您翻译文本。
我有一个pandas DataFrame需要按照一列中特定的顺序排序,并按另一列升序排序。两列都有重复的值。它大致看起来像这样:
使用Python 3.5.2和Pandas 0.18.1。
我有一个pandas 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和Pandas 0.18.1。
0
列中字符串的长度,然后先按字符串长度排序,再根据字符串本身排序。 - Khris