Python CSV读取。按2列按升序和降序排序

时间:2019-11-19 15:28:28

标签: python pandas csv

csv文件(https://www.kaggle.com/blitzr/movehub-city-rankings->> movehubqualityoflife.csv)

我需要返回前五项记录,以便按最高Movehub等级和最差医疗保健等级的城市

请帮我,朋友。

在这里查看我当前的代码:

import pandas as pd

df = pd.read_csv("movehubqualityoflife.csv", delimiter=',')

df.sort_values(by='Movehub Rating', ascending=False)


df1 = pd.read_csv("movehubqualityoflife.csv", delimiter=',')

df1.sort_values(by='Health Care', ascending=True)

2 个答案:

答案 0 :(得分:0)

您应该能够通过对相同数据框进行2次排序来做到这一点:

import pandas as pd

df = pd.read_csv("movehubqualityoflife.csv", delimiter=',')

df.sort_values(by='Movehub Rating', ascending=False)
df.sort_values(by='Health Care', ascending=True)

以这种方式,您的数据框将首先按“医疗保健递增”排序,然后按“ movehub评分递减”排序。 数据框对象中的排序操作是永久性的。

答案 1 :(得分:0)

为了保存您设置的新订单,您需要使用就地,这样您所做的更改将永久保存。您可以使用head(5)获得前5个

df.sort_values(by='Movehub Rating', ascending=False, inplace=True)

df1=df.head(5)

然后您可以再次进行“医疗保健”。 如果要对它们进行排序(首先按“ Movehub评分”,然后按“医疗保健”排序),则可以执行以下操作:

df.sort_values(by=['Movehub Rating','Health Care'], ascending=[False,True], inplace=True)

df1=df.head(5)