繁体   English   中英

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

[英]python reading in multi-column tsv file with row numbers

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

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

例子:

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

有任何想法吗?

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

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

不过我也建议在DataFrame从模块pandas为简单的python操作的东西之外。 它可以这样使用:

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

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

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

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

如何使用以下原生 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();
            # ...

导入 Pandas 库

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

不再工作了。

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

pandas.read_csv("file.tsv")

DataFrame.from_csv()不起作用。 DataFrame.read_csv()不对。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM