2013-07-25 72 views
2

我對使用Pandas在csv文件中排序行的問題有一個疑問。我有的csv文件有這樣的數據:使用Python對csv文件中的行進行排序大熊貓

quarter week Value 
    5  1  200 
    3  2  100 
    2  1  50 
    2  2  125 
    4  2  175 
    2  3  195 
    3  1  10 
    5  2  190 

我需要按以下方式排序:排序季度和相應的星期。因此,輸出應類似於以下內容:

quarter week Value 
    2  1  50 
    2  2  125 
    2  3  195 
    3  1  10 
    3  2  100  
    4  2  175 
    5  1  200 
    5  2  190 

我嘗試:

df = df.sort('quarter', 'week') 

但這不會產生正確的結果。任何幫助/建議?

謝謝!

回答

3

鍵入help(df.sort)給出:

sort(self, columns=None, column=None, axis=0, ascending=True, inplace=False) method of pandas.core.frame.DataFrame instance 
    Sort DataFrame either by labels (along either axis) or by the values in 
    column(s) 

    Parameters 
    ---------- 
    columns : object 
     Column name(s) in frame. Accepts a column name or a list or tuple 
     for a nested sort. 

[...] 

Examples 
-------- 
>>> result = df.sort(['A', 'B'], ascending=[1, 0]) 

[...] 

等你傳遞要排序的列表中的列:

>>> df 
    quarter week Value 
0  5  1 200 
1  3  2 100 
2  2  1  50 
3  2  2 125 
4  4  2 175 
5  2  3 195 
6  3  1  10 
7  5  2 190 
>>> df.sort(["quarter", "week"]) 
    quarter week Value 
2  2  1  50 
3  2  2 125 
5  2  3 195 
6  3  1  10 
1  3  2 100 
4  4  2 175 
0  5  1 200 
7  5  2 190 
+0

由於一噸!有效。 –

+1

我知道這個答案是在四年前給出的,但是我認爲我會補充說''df.sort(['A','B'])'現在已經被棄用了。新方法是'df.sort_values(by = ['A','B'])''。 –