使用Python从文本文件中的列中提取数据

2024-04-19 17:15:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从文本文件中的列中提取数据。其中一个列有一个标题,我还需要用标题的重复条目提取整个列,即:

col1 col2 col3
1     1     1
2     2     2
3     3     3

进入:

^{pr2}$

我正在努力隔离头球。在

for line in my_file:
    line = line.split("\t")
    column = line[0:3] #col1-3

如何从col3获取标题,然后将其重复?我必须先按"\n"分割这条线,然后再按"\t"分割吗?在

我试图这么做,但收到了一个错误消息?在


Tags: 数据in标题formyline条目file
3条回答

您可以使用Python的CSV模块,如下所示。这可以自动处理所有列的拆分。默认情况下,它假定列之间用逗号分隔,但可以通过指定要使用的分隔符切换到制表符:

import csv

with open('input.csv', 'rb') as f_input, open('output.csv', 'wb') as f_output:
    csv_input = csv.reader(f_input, delimiter='\t')
    csv_output = csv.writer(f_output, delimiter='\t')
    header = next(csv_input)
    csv_output.writerow(header + [header[-1]])

    for cols in csv_input:
        print cols
        csv_output.writerow(cols + [header[-1]])

对于给定的输入,您将得到以下输出(列用制表符分隔):

^{pr2}$

使用Python2.7.9测试

with open('/home/prashant/Desktop/data.txt') as f:
for l in f:
    print l.strip( ).split("\n")

这也许能解决你的问题我得到的结果是

[col1 col2 col3]

[1 1 1]

[2 2 2]

[3 3 3]

你为什么不用熊猫呢。在

     import pandas as pd
     df = pd.read_csv("filename.tsv",sep="\t")

为了获得列标题,还可以使用

^{pr2}$

相关问题 更多 >