天天看点

python dataframe用sort_values()根据第一列的值排序

 dataframe根据第一列的值排序

打开文件:

import pandas as pd
df = pd.read_csv('.\data\dict.txt',delimiter=' ',encoding='utf-8',header=None,nrows=5)
           

参数解析,第一个参数是文件路径,可以打开csv,txt等

delimiter:分隔符,不写时默认是逗号,这里是‘ ’,也可以用'\t'等等

encoding:编码格式

header:是否有列名

nrows:取前n行出来,不设此参数默认全部取

按照第一列的列值进行排序:

df = df.sort_values(by=0,axis=0)
           

这里因为没有列名,直接用索引0排序,当然按其他列也可以,axis=0表示按列,同理axis=1表示按行

#不写列名可以直接写索引,源码中给加中括号

python dataframe用sort_values()根据第一列的值排序

如果有列名也可以按列名:

df.columns = ["address", "label", "type"]
df = df.sort_values(by='address')
#或 df = df.address.sort_values()
           

有列名也可以写成这样:(就是先得到排完后的行索引),然后按重排后的索引重新排序

df.columns = ["address", "label", "type"]
my_index = df.address.sort_values().index
df = df.reindex(my_index)