python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Pandas DataFrame按照一列数据的特定顺序进行排序

Pandas DataFrame如何按照一列数据的特定顺序进行排序

作者:凞懿

这篇文章主要介绍了Pandas DataFrame如何按照一列数据的特定顺序进行排序,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

DataFrame按照一列数据的特定顺序进行排序

原理

先把该列转成category 格式,再弄一个排好序的列表,导入排序即可

dis3 = data3.groupby('distance_group')['case0'].count().reset_index()
list_dis = ['gps incomplete', 'no move', 'in 5 meters', 'in 50 meters','in 500 meters','in 5 km','in 50 km','out 50 km']
dis3['distance_group'] = dis3['distance_group'].astype('category')
dis3['distance_group'].cat.reorder_categories(list_dis, inplace=True)
dis3.sort_values('distance_group',inplace = True)

Pandas库DataFrame的排序 输出特定某列

# -*- coding:utf-8 -*-
 
import tushare as ts
import pandas as pd
 
 
df = pd.read_excel('test.xlsx')
df1 = df.head(10)
 
 
#dataframe按索引升序排列,默认即是升序
print df1.sort_index()
#dataframe按索引降序排列
print df1.sort_index(ascending=False)
 
#第一行按升序排序,默认即是升序
print df1.sort_index(axis=1)
 
#第一行按降序排序
print df1.sort_index(axis=1, ascending=False)
 
#以amount这一列的值进行排序,默认从小到大
print df1.sort_values(by='amount')
 
#以amount这一列的值进行排序,从大到小
#print df1.sort_values(by='amount', ascending=False)

1:取行的操作

house_info.loc[3:6]

类似于python的切片操作

2:取列操作

house_info['price']  

这是读取csv文件时默认的第一行索引

3:取两列

house_info[['price',tradetypename']] 

取多个列也是同理的,注意里面是一个list的列表,不然会报错误;

4:增加列

house_Info['adress_new']=list([.....])  

跟字典的操作有点类似;

5:对某一列除以他的最大值

这样可以得到一个0,1的数值范围,也就是一个简易的归一化操作;

house_info['price']/house_info['price'].max()

6:对列进行排序操作

house_info.sorted_values('price',inplace=True,ascending=True) 

这里的inplace表示再排序的时候是否生成一个新的dataframe 结构,ascending=true表示升序,默认也是升序;

还有一点应该注意的是:对于缺省值,(Nan)排序的时候会把他排在末尾;

7:如何获取缺省值

column_null = pd.isnull(column)
column_is_null_true = column[column_null]

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。                                                                                            

您可能感兴趣的文章:
阅读全文