我正在读一个csv文件pandas
.这个csv文件由四列和一些行组成,但没有标题行,我想添加它.我一直在尝试以下方面:
Cov = pd.read_csv("path/to/file.txt", sep='\t') Frame=pd.DataFrame([Cov], columns = ["Sequence", "Start", "End", "Coverage"]) Frame.to_csv("path/to/file.txt", sep='\t')
但是当我应用代码时,我收到以下错误:
ValueError: Shape of passed values is (1, 1), indices imply (4, 1)
这个错误究竟是什么意思?在python中添加标题行到我的csv文件/ pandas df会是一个干净的方法吗?
你可以names
直接使用read_csv
names:array-like,default无要使用的列名列表.如果文件不包含标题行,则应显式传递header = None
Cov = pd.read_csv("path/to/file.txt", sep='\t', names=["Sequence", "Start", "End", "Coverage"])
下面的行不会按预期工作.names
已经是一个数据帧,假设它从文件中读取时确实有4列.
Cov = pd.read_csv("path/to/file.txt", sep='\t', names=["Sequence", "Start", "End", "Coverage"])
或者你可以用c读取你的csv header=None
然后添加它df.columns
:
Cov = pd.read_csv("path/to/file.txt", sep='\t', header=None) Cov.columns = ["Sequence", "Start", "End", "Coverage"]
col_Names=["Sequence", "Start", "End", "Coverage"] my_CSV_File= pd.read_csv("yourCSVFile.csv",names=col_Names)
做完这个,只需检查一下[显然我知道,你知道.但还是......
my_CSV_File.head()
希望它有所帮助......干杯
要修改你的代码你可以简单地[Cov]
改为Cov.values
,第一个参数pd.DataFrame
将成为一个多维numpy
数组:
Cov = pd.read_csv("path/to/file.txt", sep='\t') Frame=pd.DataFrame(Cov.values, columns = ["Sequence", "Start", "End", "Coverage"]) Frame.to_csv("path/to/file.txt", sep='\t')
但最聪明的解决方案仍然是使用pd.read_excel
与header=None
和names=columns_list
.