我正在尝试订购一个只有 300 多个条目的 .csv 文件,然后按方言下一个特定列中的数值顺序将其全部输出。 这是我到目前为止编写的代码,但它似乎只是在输入时输出数据
import csv
import itertools
from itertools import groupby as gb
reader = csv.DictReader(open('Full_List.csv', 'r'))
groups = gb(reader, lambda d: d['red label'])
result = [max(g, key=lambda d: d['red label']) for k, g in groups]
writer = csv.DictWriter(open('output.csv', 'w'), reader.fieldnames)
writer.writeheader()
writer.writerows(result)
整个文件中只有 50 行包含方言“红色标签”下的值,其他所有行都留空。 它在 .csv 的 Z 列中(但不是最后一个)所以我假设该列的索引是 25(0 是第一个)。 任何帮助将不胜感激。
最佳答案
如何使用 pandas ?
import pandas as pd
df = pd.read_csv('Full_List.csv')
df = df.sort('red label')
df.to_csv('Full_List_sorted.csv', index=False)
您可能需要调整 read_csv
和 to_csv
的选项以匹配您的 CSV 文件的格式。
关于python - 在 python 中使用 .csv 按特定列数据排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15559812/