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

时间:2014-09-09 15:05:43

标签: python dataframe tsv

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

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

示例:

    A      B  C
1   a1     b1 c1
2   a2     b2 c2
3   a3     b3 c3

有什么想法吗?

6 个答案:

答案 0 :(得分:17)

取决于您之后要对数据执行的操作(如果文件确实是带有\ t分隔符的tsv)。如果您只想在一组列表中使用它,可以使用csv模块,如下所示:

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

但是,除了简单的python操作之外,我还推荐DataFrame pandas模块。它可以这样使用:

from pandas import DataFrame
df = DataFrame.from_csv("tsv.tsv", sep="\t")

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

答案 1 :(得分:1)

如何使用以下本机Python代码:

with open('tsvfilename') as f:
    lines = f.read().split('\n')[:-1]
    for i, line in enumerate(lines):
        if i == 0: # header
            column_names = line.split()
            # ...
        else:
            data = line.split();
            # ...

答案 2 :(得分:1)

导入熊猫库

import pandas as pd
data = pd.read_csv('/ABC/DEF/TSV.tsv', sep='\t')

答案 3 :(得分:0)

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

df.read_csv("tsv.tsv", sep="\t")可能正在工作

答案 4 :(得分:0)

DataFrame.from_csv("tsv.tsv", sep="\t")

不再工作。 使用

df.read_csv("tsv.tsv", sep="\t")

答案 5 :(得分:0)

pandas.read_csv("file.tsv")

DataFrame.from_csv()不起作用。 DataFrame.read_csv()不正确。