我有一个关于使用Pandas对csv文件中的行进行排序的快速问题。我拥有的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')
但这不会产生正确的结果。任何帮助/建议?
谢谢!
答案 0 :(得分:3)
注意:
sort
已被弃用,而不是sort_values
,您应该在Pandas 0.17 +中使用。
键入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
答案 1 :(得分:0)
DataFrame
对象没有属性sort
答案 2 :(得分:0)
新答案,截至2019年3月14日
df.sort_values(by=["COLUMN"], ascending=False)
这将返回一个新排序的数据框,而不更新原始数据框。
注意:您可以根据需要更改升序参数,而无需将其传递,它将默认为ascending=True