首页 文章

如何将 Headers 行添加到pandas DataFrame中

提问于
浏览
88

我正在将一个csv文件读入 pandas . 这个csv文件由四列和一些行组成,但没有 Headers 行,我想添加它 . 我一直在尝试以下方面:

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中添加 Headers 行到我的csv文件/ pandas df会有什么干净的方法?

4 回答

  • 3
    col_Names=["Sequence", "Start", "End", "Coverage"]
    my_CSV_File= pd.read_csv("yourCSVFile.csv",names=col_Names)
    

    做完这个,只需检查一下[很明显我知道,你知道 . 但还是......

    my_CSV_File.head()
    

    希望它有所帮助......干杯

  • 130

    您可以直接在read_csv中使用 names

    names:array-like,default无要使用的列名列表 . 如果文件不包含 Headers 行,则应显式传递header = None

    Cov = pd.read_csv("path/to/file.txt", sep='\t', 
                      names = ["Sequence", "Start", "End", "Coverage"])
    

    下面的行不会按预期工作 . Cov 已经是一个数据帧,假设它从文件中读取时确实有4列 .

    Frame=pd.DataFrame([Cov], columns = ["Sequence", "Start", "End", "Coverage"])
    
  • 71

    或者你可以用 header=None 读取csv,然后用 df.columns 添加它:

    Cov = pd.read_csv("path/to/file.txt", sep='\t', header=None)
    Cov.columns = ["Sequence", "Start", "End", "Coverage"]
    
  • 6

    要修复代码,只需将 [Cov] 更改为 Cov.valuespd.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_excelheader=Nonenames=columns_list .

相关问题