【发布时间】:2019-11-04 20:08:43
【问题描述】:
我正在尝试重新排序我使用 python 生成的 csv 文件,但无法使其工作,
数据如下:
metrics test1 test2 test3 test4 ...
aa-key1
aa-key3
bb-key4
cc--key2
dd--key5
...
键不是按字母或数字排序的。它只需要作为预定义的顺序 [key1, key2, key3, key4, key5]。我添加了 aa、cc、bb dd 来说明我总是得到的顺序。有什么方法可以按第一列重新排序表格,CSV 会喜欢
metrics test1 test2 test3 test4 ...
aa-key1
cc--key2
aa-key3
bb-key4
dd--key5
...
我已经用 panda 生成了 csv,方法是在创建后附加列。虽然我将字典定义为orderedDict,但顺序似乎没有受到影响。
def create_csv(infile, result):
dict = parse_log_to_dict(infile)
with open(result, 'w') as f:
writer = csv.writer(f)
writer.writerow(['metrics', get_file_name_only(infile)])
for row in dict.items():
writer.writerow(row)
我试过了:
PREPERED_INDEX = [key1, key2, key3, key4, key5]
reporter_df = pd.read_csv(result, index_col=0)
reporter_df[0] = pd.Categorical(reporter_df[0], PREPERED_INDEX)
reporter_df.sort_values('metrics')
reporter_df.to_csv(result)
但在指标上出现了 keyError,这是我本应在表格中显示的标题行。
谢谢!
【问题讨论】: