你可以使用df.sort_values对 Pandas的DataFrame 进行排序。
在这个简短的教程中,你将看到 4 个对Pandas DataFrame进行排序的示例:
- 按升序排列的列
- 按降序排列的列
- 按多列 – 案例 1
- 按多列 – 案例 2
Brand | Price | Year |
HH | 22000 | 2015 |
TT | 25000 | 2013 |
FF | 27000 | 2018 |
AA | 35000 | 2018 |
import pandas as pd
data = https://www.lsbin.com/{'Brand': [
'HH','TT','FF','AA'],
'Price': [
22000,25000,27000,35000],
'Year': [
2015,2013,2018,2018]
}
df = pd.DataFrame(data, columns=[
'Brand','Price','Year'])print (df)
如果你运行上面的Python代码,你会得到以下 DataFrame:
BrandPriceYear
0HH220002015
1TT250002013
2FF270002018
3AA350002018
接下来,你将看到如何使用 4 个不同的示例对该 DataFrame 进行排序。
实例1:排序Pandas数据帧中的 升序 顺序如何排序Pandas DataFrame?假设你要对 DataFrame 进行排序,以便品牌将以升序显示。在这种情况下,你需要将以下语法添加到代码中:
df.sort_values(by=[
'Brand'], inplace=True)
请注意,除非指定,否则默认情况下值将按升序排序。
完整的 Python 代码如下所示:
import pandas as pd
data = https://www.lsbin.com/{'Brand': [
'HH','TT','FF','AA'],
'Price': [
22000,25000,27000,35000],
'Year': [
2015,2013,2018,2018]
}
df = pd.DataFrame(data, columns=[
'Brand','Price','Year'])# sort Brand in an ascending order
df.sort_values(by=[
'Brand'], inplace=True)print (df)
运行代码时,你会注意到 Brand 确实会按升序排序,其中 'AA' 将是第一条记录,而 'TT' 将是最后一条:
BrandPriceYear
3AA350002018
2FF270002018
0HH220002015
1TT250002013
实例2:排序数据帧熊猫以 降序 顺序或者,你可以按降序对 Brand 列进行排序。为此,对Pandas DataFrame进行排序,只需按以下方式添加Ascending=False的条件 :
df.sort_values(by=[
'Brand'], inplace=True, ascending=False)
完整的 Python 代码为如下的Pandas DataFrame排序示例:
import pandas as pd
data = https://www.lsbin.com/{'Brand': [
'HH','TT','FF','AA'],
'Price': [
22000,25000,27000,35000],
'Year': [
2015,2013,2018,2018]
}
df = pd.DataFrame(data, columns=[
'Brand','Price','Year'])# sort Brand in a descending order
df.sort_values(by=[
'Brand'], inplace=True, ascending=False)print (df)
如何排序Pandas DataFrame?你现在会注意到 'TT' 将是第一条记录,而 'AA' 将是最后一条(正如你在为我们的样本应用降序时所期望的那样):
BrandPriceYear
1TT250002013
0HH220002015
2FF270002018
3AA350002018
示例 3:按多列排序 – 案例 1但是如果你想按多列排序怎么办?
在这种情况下,你可以使用以下模板按多列排序:
df.sort_values(by=[
'First Column','Second Column',...], inplace=True)
假设你想要作为排序依据 双方的“年份”和“价格”。由于你有两个年份为 2018 年的记录(即“FF”和“AA”品牌),那么按第二列(“价格”列)排序会很有用:
df.sort_values(by=[
'Year','Price'], inplace=True)
这是你可以使用的 Python 代码:
import pandas as pd
data = https://www.lsbin.com/{'Brand': [
'HH','TT','FF','AA'],
'Price': [
22000,25000,27000,35000],
'Year': [
2015,2013,2018,2018]
}
df = pd.DataFrame(data, columns=[
'Brand','Price','Year'])# sort by multiple columns: Year and Price
df.sort_values(by=[
'Year','Price'], inplace=True)print (df)
请注意,所有记录现在都按年份和价格升序排序,因此 'FF' 将出现在 'AA' 之前:
BrandPriceYear
1TT250002013
0HH220002015
2FF270002018
3AA350002018
还要注意的是,执行排序时,它被放置在df.sort_values的“年份”列将优先级之前, “价格”栏。
示例 4:按多列排序 – 案例 2对Pandas DataFrame进行排序,最后,我们按照‘Year’和‘Brand’的列进行排序,如下所示:
df.sort_values(by=[
'Year','Brand'], inplace=True)
完整的 Python 代码如下Pandas DataFrame排序示例所示:
import pandas as pd
data = https://www.lsbin.com/{'Brand': [
'HH','TT','FF','AA'],
'Price': [
22000,25000,27000,35000],
'Year': [
2015,2013,2018,2018]
}
df = pd.DataFrame(data, columns=[
'Brand','Price','Year'])# sort by multiple columns: Year and Brand
df.sort_values(by=[
'Year','Brand'], inplace=True)print (df)
如何排序Pandas DataFrame?你现在将看到所有记录都按年份和品牌按升序排序,因此这次 'AA' 将出现在 'FF' 之前:
BrandPriceYear
1TT250002013
0HH220002015
3AA350002018
2FF270002018
【如何对Pandas DataFrame进行排序(示例代码)】你可能需要查看Pandas 文档以了解有关在 Pandas DataFrame 中对值进行排序的更多信息。
推荐阅读
- 在Python中如何使用Pandas创建数据透视表()
- 如何将Pandas DataFrame转换为列表()
- 如何连接Pandas DataFrame中的列值()
- 在Pandas DataFrame中应用IF条件的5种方法
- 安装系统 电脑重装系统,教您电脑怎样运用U盘重装win7系统
- u盘东西删不掉,教您如何恢复正常
- u盘驱动_教您U盘万能驱动
- 笔记本usb接口没反应,教您处理笔记本USB接口没反应的办法
- usb驱动,教您USB万能驱动