Python:将列表字典写入.csv文件,并在非连续位置预填充标题

时间:2016-04-08 06:11:51

标签: python list file csv dictionary

以下是我的情景:

我创建了一个列表字典。我是通过导入.csv数据及其列标题创建的;即列标题是键,它们的数据是字典的项目。字典中的项目是列表。

我只想将第一个.csv文件中的项目复制到另一个第二个.csv文件中,该文件中有预先填充的标题;即我只想在第二个文件中的预填充标题下复制数据。第二个.csv文件中的标题不是连续的,即' NAME'标题可能位于A列,而“DATE”标题位于列A中。标题可以在E列中。

我的python脚本如下:

#!/usr/bin/python
import os
import os.path
import re
import sys
import pdb
import csv


f =open('input.csv','rU')
reader = csv.reader(f)
headers = reader.next()
column = {}

for h in headers:
    column[h] = []

for row in reader:
    for h,v in zip(headers, row):
        column[h].append(v)

g = zip(*column['Name'])

resultFile = open("output.csv",'wb')
wr = csv.writer(resultFile, dialect='excel')
wr.writerow(g)

我可以将字典项(列表)打印到.csv文件中。

我的问题是:

1)列表以水平方式打印(尽管使用了zip功能)

2)我不知道如何将垂直列表打印到output.csv文件中的特定列位置;我在StackOverflow的答案研究中没有遇到过这个问题

3)即使我打印列表,它也会在output.csv文件中写入预定的标题。

我知道这个问题有很多,但如果有人可以提供帮助并指出我正确的方向,我将非常感激。

1 个答案:

答案 0 :(得分:0)

如果两个csv文件具有相同的长度(行数)并且您可以使用pandas:    1.将两个csv读入pandas DataFrames,    2.将第一个数据帧中的列插入第二个数据帧中    3.写出第二个数据帧。

import pandas as pd

df1 = pd.read_csv('input.csv')
df2 = pd.read_csv('output.csv')

df2.insert(index, new_col_label, df1[column_label_in_df1])

df2.to_csv('output.csv', index=False)