Dataframe的行名及列名排序问题
作者:好多好多鱼~
这篇文章主要介绍了Dataframe的行名及列名排序问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
Dataframe的行名及列名排序
pandas是Python进行数据处理中强大的数据包,在进行数据处理的时候时常会用到关于Dataframe格式数据的一些调整和排序,下面是关于行列操作的一些总结:
列的重命名
在数据处理的时有时会设计的列名与想用的列名不匹配,可以使用一下代码进行header的重命名:
df = pd.read_csv(path, header=0) print(df) close date high low money open time volume 0 66.48 2020-01-02 66.48 65.85 5722474 66.01 09:31 866 1 66.30 2020-01-02 66.48 66.18 2646681 66.22 09:32 399 2 66.37 2020-01-02 66.39 66.16 1279115 66.17 09:33 193 3 66.45 2020-01-02 66.45 66.37 4130439 66.39 09:34 622 4 66.28 2020-01-02 66.48 66.28 2149783 66.45 09:35 324 ... ... ... ... ... ... ... ... ... 5755 84.17 2020-02-27 84.22 84.12 3081344 84.12 14:56 366 5756 84.17 2020-02-27 84.19 84.14 2263360 84.17 14:57 269 5757 84.14 2020-02-27 84.14 84.14 16896 84.14 14:58 2 5758 84.14 2020-02-27 84.14 84.14 0 84.14 14:59 0 5759 84.09 2020-02-27 84.09 84.09 7182208 84.09 15:00 854 order = ['date', 'time', 'open', 'high', 'low', 'close', 'volume', 'money'] #对于列进行重排序 df = df[order] print(df) date time open high low close volume money 0 2020-01-02 09:31 66.01 66.48 65.85 66.48 866 5722474 1 2020-01-02 09:32 66.22 66.48 66.18 66.30 399 2646681 2 2020-01-02 09:33 66.17 66.39 66.16 66.37 193 1279115 3 2020-01-02 09:34 66.39 66.45 66.37 66.45 622 4130439 4 2020-01-02 09:35 66.45 66.48 66.28 66.28 324 2149783 ... ... ... ... ... ... ... ... ... 5755 2020-02-27 14:56 84.12 84.22 84.12 84.17 366 3081344 5756 2020-02-27 14:57 84.17 84.19 84.14 84.17 269 2263360 5757 2020-02-27 14:58 84.14 84.14 84.14 84.14 2 16896 5758 2020-02-27 14:59 84.14 84.14 84.14 84.14 0 0 5759 2020-02-27 15:00 84.09 84.09 84.09 84.09 854 7182208
这样就完成了列名的排序
修改列名
有的时候设置的列名不规范导致格式不一致,可以通过下列方法直接对每一列的列名进行修改
import pandas as pd df = pd.read_csv('123.csv',header = 0) df.columns =['date', 'timetemp', 'open', 'high', 'low', 'close', 'volume', 'money'] print(df)
行的排序
可以按照某一列的值对于Dataframe进行行的排序得到自己想要的排列顺序
import pandas as pd frame = pd.read_csv('321.csv',header = 0) frame = frame.sort_values('date') frame.reset_index(drop=True, inplace=True)
DataFrame格式数据排序
简单说关于排序若只需要按索引、列名排序,如下(True从小到大,False反之)
#.sort_index(axis = 0,ascending = True)#axis: 轴方向,默认0#ascending: 默认True从小到大,Fasle从大到小#如import pandas as pda = [[1,2,3],[2,3,4],[4,6,9],[3,1,5]]b = pd.DataFrame(a, columns = ['b','c','a'])b = b.set_index('b')print(b,'\n-----------')d = b.sort_index(axis = 0,ascending = True)print(d)
axis决定是按行名还是列名排序,
举例:
- 按行axis = 0
- 按列axis = 1
若需要指定按照某一行/列大小排序
#.sort_values(by, axis = 0,ascending = True) #如`在这里插入代码片` import pandas as pd a = [[1,2,3],[2,3,4],[4,6,9],[3,5,1]] b = pd.DataFrame(a, columns = ['b','c','a']) b = b.set_index('b') print(b,'\n-----------') # c = b.sort_values(by = 3,axis = 1,ascending = True) c = b.sort_values(by = 'c',axis = 0,ascending = True) print(c) # d = b.sort_index(axis = 1,ascending = True) # print(d)
- 按某一列
- 按某一行
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。