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

使用Python从文本文件的列中提取数据,python,parsing,text,multiple-columns,Python,Parsing,Text,Multiple Columns,我试图从文本文件中的列中提取数据。其中一列有一个标题,我还需要用标题的重复条目提取整个列,即: col1 col2 col3 1 1 1 2 2 2 3 3 3 进入: 我正在努力隔离头球 for line in my_file: line = line.split("\t") column = line[0:3] #col1-3 如何从col3中获取标题,然后将其重复?我是否必须先按“\n”拆分行,然后按“\t”拆分行 我试图

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

col1 col2 col3
1     1     1
2     2     2
3     3     3
进入:

我正在努力隔离头球

for line in my_file:
    line = line.split("\t")
    column = line[0:3] #col1-3
如何从col3中获取标题,然后将其重复?我是否必须先按
“\n”
拆分行,然后按
“\t”
拆分行


我试图这样做,但收到一条错误消息?

您可以使用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]])
对于给定的输入,您将获得以下输出(列以制表符分隔):


使用Python2.7.9测试,为什么不使用pandas呢

     import pandas as pd
     df = pd.read_csv("filename.tsv",sep="\t")
为了获得列标题,还可以使用

      df.ix[:,2:]
这可能会解决你的问题我得到的结果是

[col1 col2 col3]

[1]

[2]

[3]


您的文件是由选项卡分隔的csv文件吗?它是由选项卡分隔的文本文件扫描您将该错误发布为编辑。
     import pandas as pd
     df = pd.read_csv("filename.tsv",sep="\t")
      df.ix[:,2:]
with open('/home/prashant/Desktop/data.txt') as f:
for l in f:
    print l.strip( ).split("\n")