小编HBS*_*HBS的帖子

按数值对csv排序

我一直在寻找和阅读以前与我类似的问题和答案,但没有找到解决我案件的好方法。

我有2列的csv文件。一个是数值(100、40、350等),另一个是图片标签名称的列表(即computer.jpg)。

我想做的是以升序方式按第一列(即值)对文件进行排序。这也意味着我希望一对值(图像名称)随之随之移动。

这是我到目前为止的内容:

import csv
import operator
sample=open('random.csv', "r")
csv1=csv.reader(sample, delimiter='.')
header=next(csv1, None)
sort= sorted(csv1, key=operator.itemgetter(0))

with open('randomized.csv', "wb") as f:
    csv_writer=csv.writer(f, delimiter='.')
    if header:
        csv_writer.writerow(header)
    csv_writer.writerows(sort)
Run Code Online (Sandbox Code Playgroud)

但是,结果排序列表如下:100、175、20、250、3。

我尝试了其他一些代码,例如:

sort=csv1.sort(key=lambda row: row[0], reverse=True)
Run Code Online (Sandbox Code Playgroud)

但是我收到一个错误消息:AttributeError:'_csv.reader'对象没有属性'sort'

我读到一种选择,它是在排序之前将数字转换为字符串,然后在写入文件之前将其转换回数字,但实际上并没有工具来执行此操作。

有人知道如何把它记下来吗?

python csv sorting

2
推荐指数
1
解决办法
4690
查看次数

标签 统计

csv ×1

python ×1

sorting ×1