📌  相关文章
📜  如何在Python按多列对 CSV 进行排序?

📅  最后修改于: 2022-05-13 01:54:32.054000             🧑  作者: Mango

如何在Python按多列对 CSV 进行排序?

在本文中,我们将讨论如何按多列对 CSV 文件进行排序。首先,我们将 CSV 文件转换为数据框,然后我们将使用sort_values()方法对数据框进行排序。

将 CSV 文件转换为数据框后,我们需要在sort_values()方法中参数添加两个或多个 CSV 文件的列名,轴分配为 0,如下所示:

正在使用的 CSV 文件:



以下是描述如何按多列对 CSV 文件进行排序的各种示例:

示例 1:

在下面的程序中,我们首先将 CSV 文件转换为数据帧,然后按单列升序对数据帧进行排序。

Python3
# importing pandas package
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("diamonds.csv")
  
# sorting data frame by a column
data.sort_values("carat", axis=0, ascending=True,
                 inplace=True, na_position='first')
  
# display
data.head(10)


Python3
# importing pandas package
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("diamonds.csv")
  
# sorting data frame by multiple columns
data.sort_values(["depth", "table"], axis=0,
                 ascending=True, inplace=True)
  
# display
data.head(10)


Python3
# importing pandas package
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("diamonds.csv")
  
# sorting data frame by multiple columns
data.sort_values(["depth", "table"], axis=0,
                 ascending=[False, True], inplace=True)
  
# display
data.head(10)


Python3
# importing pandas package
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("diamonds.csv")
  
# sorting data frame by multiple columns
data.sort_values(["depth", "table", "carat"], axis=0,
                 ascending=[False, True, False], inplace=True)
  
# display
data.head(10)


输出:

示例 2:

在这里,转换成数据框后,CSV文件按多列排序,深度列先升序排序,然后表列按每个深度升序排序。



蟒蛇3

# importing pandas package
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("diamonds.csv")
  
# sorting data frame by multiple columns
data.sort_values(["depth", "table"], axis=0,
                 ascending=True, inplace=True)
  
# display
data.head(10)

输出:

示例 3:

在下面的示例中,CSV 文件按深度按降序排序,然后按每个深度的表格升序排序。

蟒蛇3

# importing pandas package
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("diamonds.csv")
  
# sorting data frame by multiple columns
data.sort_values(["depth", "table"], axis=0,
                 ascending=[False, True], inplace=True)
  
# display
data.head(10)

输出:

示例 4:

这是 CSV 文件按多列排序的另一个示例。

蟒蛇3

# importing pandas package
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("diamonds.csv")
  
# sorting data frame by multiple columns
data.sort_values(["depth", "table", "carat"], axis=0,
                 ascending=[False, True, False], inplace=True)
  
# display
data.head(10)

输出: