使用python将标题添加到制表符分隔的csv文件中

时间:2018-05-02 07:59:58

标签: python pandas csv

我有一个制表符分隔的CSV文件。它没有任何标题。如何添加标题?这是我试过的。得到内存错误。 我正在使用Jupyter和python 3.6。*

import csv
with open('main_file.csv',newline='') as f:
    r = csv.reader(f)
    data = [line for line in r]
with open('file.csv','wb',newline='') as f:
    w = csv.writer(f, delimiter='\t')
    w.writerow(['a', 'b','c','d','e','f'])
    w.writerows(data)

我的csv数据示例

    1    2    3    4
    5    6    7    8
    9    10    11    12

3 个答案:

答案 0 :(得分:3)

这样的事可以帮助吗?

import pandas as pd
my_file = "C:\my_path\my_file.csv"
df = pd.read_csv(my_file, sep='\t', names = ["a", "b", "c", "d", "e", "f"])
df.to_csv(my_file, sep='\t', index = False)

答案 1 :(得分:2)

如果您收到内存错误,您可能需要按如下方式一次读/写一行:

import csv

with open('main_file.csv', newline='') as f_input, open('file.csv', 'w', newline='') as f_output:
    r = csv.reader(f_input, delimiter='\t')
    w = csv.writer(f_output, delimiter='\t')

    w.writerow(['a', 'b','c','d','e','f'])
    w.writerows(r)

另请注意,编写CSV文件时不应使用二进制模式(以前​​在Python 2.x中需要)。

您提供的文件似乎只有空格分隔每个值,而不是制表符(只占用一个字符位置)。在文本编辑器中打开/保存时,您可能丢失了制表符?

要读取此文件(假设空格),请放回TAB字符并添加标题:

import csv

with open('main_file.csv', newline='') as f_input, open('file.csv', 'w', newline='') as f_output:
    r = csv.reader(f_input, delimiter='\t')
    w = csv.writer(f_output, delimiter='\t')

    w.writerow(['a', 'b','c','d','e','f'])
    w.writerows(r)

答案 2 :(得分:1)

如果您打算将数据加载到pandas中,则根本不需要csv

import pandas as pd
df = pd.read_csv(filename, sep='\t\, names=['a','b','c',...])

应该做你想做的事。

之后,您可以通过

将数据帧写为csv
df.to_csv(filename, sep`='\t')