我有一个制表符分隔的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
答案 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',...])
应该做你想做的事。
之后,您可以通过
将数据帧写为csvdf.to_csv(filename, sep`='\t')