将标头添加到csv文件

时间:2016-09-13 11:49:22

标签: python csv

我有一个尺寸为100*512的csv文件,我想在spark进一步处理它。该文件的问题是它不包含标题,即column names。我需要这些列名称用于machine learning中的进一步ETL。我在另一个文件(文本文件)中有列名。我必须将这些列名称作为标题放在上面提到的csv文件中。 e.g。

CSV文件: -

  

ab 1 23 sf 23 hjh

     

hs 6 89 iu 98 adf

     

gh 7 78 pi 54 ngj

     

jh 5 22 kj 78 jdk

列标题文件: -

  

一,二,三,四,五,六

我希望输出如下: -

  一二三四五六

     

ab 1 23 sf 23 hjh

     

hs 6 89 iu 98 adf

     

gh 7 78 pi 54 ngj

     

jh 5 22 kj 78 jdk

请建议将列标题添加到CSV文件的一些方法。(不替换csv文件的行。 我通过将其转换为pandas数据帧来尝试它,但无法获得预期的输出。

4 个答案:

答案 0 :(得分:5)

首先阅读你的csv文件:

from pandas import read_csv      
df = read_csv('test.csv')

如果数据集中有两列(a列和b列),请使用:

df.columns = ['a', 'b']

将此新数据帧写入csv

df.to_csv('test_2.csv')

答案 1 :(得分:2)

你可以使用它:

    import csv

    with open('names.csv', 'w') as csvfile:
        fieldnames = ['first_name', 'last_name']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

        writer.writeheader()
        writer.writerow({'first_name': 'Baked', 'last_name': 'Beans'})
        writer.writerow({'first_name': 'Lovely', 'last_name': 'Spam'})
        writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})

答案 2 :(得分:1)

Unix的:

cat header_file.csv data_file.csv > data_file.csv

视窗:

type header_file.csv data_file.csv > data_file.csv

答案 3 :(得分:0)

老样子......

列之前的demo.csv内容:

addItem()

xyz.txt的内容:

4444,Drowsy,bit drowsy
45888,Blurred see - hazy,little seeing vision
45933,Excessive upper pain,pain problems
112397013,air,agony
76948002,pain,agony

内嵌评论的代码

Col 1,Col 2,Col 3

demo.csv的内容:

#Open CSV file
with open("demo.csv", "r+") as f:
    #Open file which has header
    with open("xyz.txt",'r') as fh:
        #Read header
        header = fh.read()
        #Read complete data of CSV file
        old = f.read()
        #Get cursor to start of file
        f.seek(0)
        #Write header and old data to file.
        f.write(header+ "\n" + old)