python在带有行号的多列tsv文件中读取

719*_*016 7 python dataframe tsv

在带有标题的python中读取多列tsv文件的最简洁方法是什么,但第一列没有标题,而是包含每行的行号?

这显然是来自R数据帧的文件的常见格式.

例:

    A      B  C
1   a1     b1 c1
2   a2     b2 c2
3   a3     b3 c3
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

小智 19

取决于您之后要对数据做什么(如果文件真的是带有\ t分隔符的tsv).如果你只想在一组列表中使用它,你可以csv像这样使用模块:

import csv
with open("tsv.tsv") as tsvfile:
    tsvreader = csv.reader(tsvfile, delimiter="\t")
    for line in tsvreader:
        print line[1:]
Run Code Online (Sandbox Code Playgroud)

但是,我还建议使用DataFrame模块来pandas处理简单python操作之外的任何事情.它可以这样使用:

from pandas import DataFrame
df = DataFrame.from_csv("tsv.tsv", sep="\t")
Run Code Online (Sandbox Code Playgroud)

DataFrames允许对数据集进行高级操作,例如添加列,查找平均值等.


小智 5

df = DataFrame.from_csv("tsv.tsv", sep="\t") 自 0.21.0 版起已弃用

df = pd.read_csv("tsv.tsv", sep="\t") 是要走的路