首页 > 解决方案 > 在现有 csv 文件的新列中创建新闻列并从字典中添加键和值

问题描述

我有一个这样的 csv 文件:

id;verbatim
1;je veux manger
2;tu as manger 

我有我的脚本,它返回这样的字典:

dico_phrases = {"['manger']": ['7', '1', '0'], "['être', 'laid']": ['0', '21', '1041']}

T 想添加 4 个这样的新闻栏:

id;verbatim,key,value1,value2,value3
1;je veux manger
2;tu as manger

然后在每一列中添加我的字典,如下所示:

id;verbatim;key,value1,value2,value3
1je veux manger;manger;7;1;0
2;tu as manger;être laid;0;21;1041

在允许我获取字典的脚本下方:

with open('output.csv','wb') as f:
      w = csv.writer(f)
      w.writerow(dico_phrases.keys())
      w.writerow(dico_phrases.values())

我有这个 :

    ['manger'],"['être', 'laid']"

    "['7', '1', '0']","['0', '21', '1041']"

跟我想象的不太一样

标签: pythonpandascsvdictionarylist-comprehension

解决方案


考虑为此使用熊猫-

df = pd.read_csv("input.csv", index_col='id')

dico_phrases = {"['manger']": ['7', '1', '0'], "['être', 'laid']": ['0', '21', '1041']}

df['key'] = [" ".join(eval(x)) for x in dico_phrases.keys()]

df = df.join(pd.DataFrame([x for x in dico_phrases.values()], index=df.index))

df.to_csv("output.csv")

输出

id,verbatim,key,0,1,2
1,je veux manger,manger,7,1,0
2,tu as manger,être laid,0,21,1041

推荐阅读