在网上一共看到两种方法:

第一种方法主要参考:pandas 数据排序.sort_index()和.sort_values() - 地球上最后一个直男 - 博客园

需求是针对forall.csv中的第一列进行排序,因为没有命名,所以第一列字段默认为了’Unnamed:0‘。

df_loc = df_loc.sort_values(axis=0, by='Unnamed: 0', ascending=True)
print('df_loc=', df_loc)
df_loc.to_csv('forall',header=True,index=False)

完整的调用方法是:

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')

主要有三个参数需要注意一下:
①axis:{0 or ‘index’, 1 or ‘columns’},default 0,默认按照列排序;如果为1,则是按照行排序。
②by:str or list of str;如果axis=0,那么by="列名";如果axis=1,那么by="行名"。
③ascending:布尔型,True则升序,如果by=['列名1','列名2'],则该参数可以是[True, False],即第一字段升序,第二个降序。

第二种方法主要参考:python操作csv文件实现对特定列排序 - 简书

需求是针对forall.csv中的第一列进行排序。

    with open('forall', 'r') as f:
        table = []
        for line in f:
            col = line.split(',')
            col[0] = str(col[0])
            col[1] = col[1].strip("\n")
            table.append(col)
        table_sorted = sorted(table, key=itemgetter(0), reverse=False)  # 精确的按照第1列排序
        for row in table_sorted:
            datas.append(row)
    f.close()

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐