我正在尝试订购仅包含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,sorting,csv