繁体   English   中英

Python:将列表字典写入到.csv文件中,该文件在非连续位置具有预填充的标头

[英]Python: Writing a dictionary of lists to a .csv file with prefilled headers in non-consecutive locations

这是我的情况:

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

我只想将项目从第一个.csv文件复制到另一个第二个.csv文件中,该文件中已预填充了标头; 即我只想在第二个文件中的预填充标题下复制数据。 第二个.csv文件中的标头不是连续的,即“ NAME”标头可能在A列中,而“ DATE”标头可能在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文件中的预定标头。

我知道这个问题有很多事情要做,但是如果有人可以帮助我并指出正确的方向,我将不胜感激。

如果两个csv文件具有相同的长度(行数)并且可以使用熊猫: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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM