【问题标题】:Reading from Csv, adding headers starting at column 2, 4, and 6从 Csv 读取,从第 2、4 和 6 列开始添加标题
【发布时间】:2017-11-16 09:04:23
【问题描述】:

我想将标题添加到我的数据中,即 2、4、6,因为当您拥有一致的标题时,它只会让管理数据集变得更加容易。

Col A   Col B    Col C  Col D   Col E  Col F
         data           data           data
         etc,,          etc,,          etc,,

这是我尝试过的:

df = pd.read_csv(filename, header=None, usecols=[2, 4, 6])
df.columns = ["Sequence", "Start", "End"]

我也试过了:

df = pd.read_csv(“filename, sep='\t',
                  names = ["Sequence", "Start", "End", "Coverage"])

我尝试了许多不同的方法,但无法添加标题。在这种情况下没有错误消息,但没有带有标题的输出。

【问题讨论】:

  • 似乎有些数据依赖问题。您可以使用 4-5 行的虚拟数据共享您的文件吗?
  • @jezrael 我认为这个问题很可能是因为列从 2、4、6 开始,而标题传统上是 1、2、3。我可以这样做,但它似乎发生在新的 excel 中。
  • 嗯,不确定是否理解 - 如果使用 usecols 参数,它会过滤 [2,4,6] 列。其次,如果不存在,它会重命名列名......那么有什么问题?
  • @jezrael 使用第一种方法,如果我将数据放在第 2、4 和 6 列中,我想要标有序列的标题,在其上方开始和结束。没有错误,因此很难确定它为什么不起作用。我可以在 VMWARE 中尝试一下,看看全新安装的 python 是否有帮助。
  • 当然可以,但是它不起作用是什么意思?你能解释更多吗?

标签: python excel python-3.x pandas csv


【解决方案1】:

您可以使用index_col=False 不将第一列转换为索引,然后使用usecols[1,3,5] 选择2.,4,6. 列,因为python 从0 计数。最后为新列名称添加参数名称并添加header=None 用于读取数据的第一行:

df = pd.read_excel('HA.xlsx', 
                   index_col=False, 
                   usecols=[1,3,5], 
                   names=["Sequence", "Start", "End"],
                   header=None)
print (df)

  Sequence      Start        End
0      awd   awdwdawd    wadwdwd
1    dawdw  wdadawdwd      wdadd
2    awawd  wadawdawd  waddwaawd
3    wadaw        NaN    dwadawd

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 2013-07-07
    相关资源
    最近更新 更多