pandas中对列进行排序(单列/多列)/(升序/降序)/(多列升序,降序控制)
前言我想把数据分析刻进DNA里如下面的数据,对price,要进行最简单的升序操作:这个好整:import pandas as pdshop = pd.read_csv("data/shop.csv", index_col='id')shop.sort_values(by='price', inplace=True)结果:按照降序,传递进ascending,并将其值改为False即可:import
·
- 前言
我想把数据分析刻进DNA里
如下面的数据,对price
,要进行最简单的升序操作:
这个好整:
import pandas as pd
shop = pd.read_csv("data/shop.csv", index_col='id')
shop.sort_values(by='price', inplace=True)
结果:
如果你想整活(被迫)要把数据进行降序排列:
按照降序,传递进ascending
,并将其值改为False即可:
import pandas as pd
shop = pd.read_csv("data/shop.csv", index_col='id')
# 默认是升序排序(ascending=True),ascending=Falas:降序排序
# 默认ascending为True
shop.sort_values(by='price', inplace=True, ascending=True)
那么你又想按照price
和worthy
一起进行排序的话:
你可以先试试:
import pandas as pd
shop = pd.read_csv("data/shop.csv", index_col='id')
shop.sort_values(by='worthy', inplace=True, ascending=False)
shop.sort_values(by='price', inplace=True, ascending=True)
print(shop)
结果:
然后你会发现这样是错的
其实应该是在一行代码中对其进行操作:
# 对两列同时按照升序排列
shop.sort_values(by=['worthy', 'price'], inplace=True, ascending=True)
print(shop)
结果:
注意,然后你又想整活了:
你想把price
和worthy
一个按照ascending
按照True
,一个按照False
进行排列:
其实像上面的by=['worthy', 'price']
一样,传入一个list就行了
直接上代码:
# 如果要使一列ascending为True,一列为False:
shop.sort_values(by=['worthy', 'price'], inplace=True, ascending=[True, False])
结果:
没错,你整活成功了
文件:F:\Project\python\src\WangYiYun\DataAnalysis\17_.py
完整代码笔记:
# @DATE : 2021-1-2
# @TIME : 15:15
# @USER : kirin
# 排序
import pandas as pd
shop = pd.read_csv("data/shop.csv", index_col='id')
# 默认是有小到大排序,ascending=Falas:由大到小排序
# 默认ascending为True
# shop.sort_values(by='worthy', inplace=True, ascending=True)
# shop.sort_values(by='price', inplace=True, ascending=True)
# 上面的这种排序其实是对shop表排了两次序
# 应该在一列代码中对A列和B列进行排序:
# shop.sort_values(by=['worthy', 'price'], inplace=True, ascending=True)
# 如果要使一列ascending为True,一列为False:
shop.sort_values(by=['worthy', 'price'], inplace=True, ascending=[True, False])
print(shop)
更多推荐
已为社区贡献11条内容
所有评论(0)