PandasCSV:CSV to orderedDi

2024-10-06 09:52:20 发布

您现在位置:Python中文网/ 问答频道 /正文

将已排序字典保存为csv的最佳方法是什么,将csv文件加载到相同格式的有序词典中,编辑它们并将它们保存回原样。在

我最初保存的数据如下:

gifs_info_list=[]
gifs_info_list.append(OrderedDict([('ID','aswd'),('class','c1'),('mu',gif["parameters"]["mu"]),('sigma','23'), ('tags', [u'movies', u'hitler']),('flag1',False),('flag2',False),('flag3',False)]))

下面是我如何处理orderedDict2CSV

^{pr2}$

这会将数据保存到csv,如下所示:

  ID    class   mu  sigma   tags    flag1 flag2 flag3
0   fdex    c1  39.8348689258   2.49703182691   [u'movies', u'hitler']  False   False   False
2   11AE    c2  38.7252538197   2.23352853216   [u'movie', u'mark millar']  False   False   False
3   p9ut    c1  37.775785901    2.33519338409   []  False   False   False

我需要编写CSV2OrderedDict,将csv中的数据加载到与创建时格式相同的ordereddict列表中。我该怎么做?在


Tags: csv数据infoidfalse格式tagsmovies
2条回答

您可以使用pd.read_csv函数读取csv文件。然后,您可以使用iterrows()方法迭代DataFrame的行,在每次迭代中创建{}并将其追加到列表中。在

import pandas as pd
from collections import OrderedDict
df = pd.read_csv("data.csv", sep="\t", index_col=0)
dicts = list()
for i, row in df.iterrows():
    d = OrderedDict(zip(row.index.tolist(),
                        row.tolist()))
    dicts.append(d)

输出将是:

^{pr2}$

编辑:tags将是字符串,而不是列表。如果要将其转换为列表使用

import ast
df['tags'] = df['tags'].apply(lambda x: ast.literal_eval(x))
def csv_to_list(fname):
    df = pd.from_csv(fname, index_col=0)
    return [OrderedDict(row[1]) for row in df.iterrows()]

相关问题 更多 >