csv文件多条件排序

csv文件多条件排序
先按照第一列即x[0]升序排序,再按照第二列即x[0]升序排序。如需降序排列,需在sorted函数体内加上reverse = True。

import sys, csv , operator
data = csv.reader(open('C:\\test.csv'),delimiter=',')
sortedlist = sorted(data, key = lambda x: (x[0], int(x[1])))
 
with open("C:\\result_test.csv", "w", newline = '') as f:
    fileWriter = csv.writer(f, delimiter=',')
    for row in sortedlist:
        fileWriter.writerow(row)
f.close()

如果要多条件排序,第一列升序,第二列降序,能用sorted函数吗?

阅读 7k
1 个回答

可以,不过你给 sorted 传 cmp 比较函数。
csv 的处理 pandas 会比较方便~

import pandas as pd

# 读取csv
df = pd.read_csv('C:\test.csv')

# 获取列标签数组
column_list = df.columns.values

# 第一列升序,第二列降序
result = df.sort_values([column_list[0], column_list[1]], ascending=[1, 0])
print(result)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题