Использование os.walk для перебора файлов, разделенных табуляцией, и создания DataFrame из первого столбца каждого файла - PullRequest
0 голосов
/ 27 апреля 2020

В моем каталоге несколько файлов, разделенных табуляцией, которые структурированы следующим образом:

ABCDE152       blablabla

ABCDE1653      irrelevant

ABGCA4545      useless

(...)

Мне нужно добавить первый столбец каждого файла в виде столбца DataFrame с pandas, заголовком каждый столбец должен быть назван как мой путь к каталогу, и в конечном итоге я выведу его как .tsv

Пока это мой сценарий:

import os
import argparse
import pandas

parser = argparse.ArgumentParser(description=
                                 "blabla")
parser.add_argument("--directory", "-d", 
                    help="The directory with the tab-separated files",
                    required=True)
parser.add_argument("--output", "-o", 
                    help="The directory for the output table",
                    required=True)
args = parser.parse_args()


for dirpath, dirnames, filenames in os.walk(args.directory):   
    if filenames:
        for filename in filenames:         
            with open(os.path.join(dirpath, filename), 'r') as f: 
                first_column = []
                for line in f:        
                    line = line.split("\t")
                    first_column.append(line[0])

                df = pandas.DataFrame(first_column, columns = [dirpath])

Однако, фрейм данных, очевидно, будет перезаписывать после каждой прогулки, и в конце у меня будет только один файл данных. Я хотел создать df один раз, а затем добавить новые столбцы в фрейм данных на основе списка first_column .

Фрейм данных должен выглядеть так:

    dirpath1   dirpath2    dirpath3 ...
0   ABABC12    ASGATS12    ACGAGCA
1   FCAFC121   ASGAS47     FAF5243
2   AGSFAS12   AAAFD457    ASGAFS5
...

Это возможно?

Большое спасибо!

...