2013-07-25 48 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'])''。 –