Чтение выбранных данных из нескольких файлов - PullRequest
0 голосов
/ 06 мая 2020

У меня 200 файлов .txt, и мне нужно извлечь данные одной строки из каждого файла и создать другой фрейм данных.

Например (abc1.txt, abc2.txt, .et c) набор files, и мне нужно извлечь данные 5-й строки из каждого файла и создать фрейм данных. При чтении файлов столбцы нужно разделять знаком '/ t'. ​​

вот так

data = pd.read_csv('abc1.txt', sep="\t", header=None)

Не могу понять, как все это сделать с помощью al oop. Вы можете помочь?

Ответы [ 2 ]

0 голосов
/ 06 мая 2020

Вот мой ответ:

import pandas as pd
from pathlib import Path

path = Path('path/to/dir')
files = path.glob('*.txt')

to_concat = []
for f in files:
    df = pd.read_csv(f, sep="\t", header=None, nrows=5).loc[4:4]
    to_concat.append(df)

result = pd.concat(to_concat)

Я использовал nrows для чтения только первых 5 строк, а затем .loc[4:4] для получения фрейма данных, а не серии (когда вы используете .loc[4].

0 голосов
/ 06 мая 2020

Вот go:

import os
import pandas as pd
directory = 'C:\\Users\\PC\\Desktop\\datafiles\\'
aggregate = pd.DataFrame()
for filename in os.listdir(directory):
    if filename.endswith(".txt"):
        data = pd.read_csv(directory+filename, sep="\t", header=None)
        row5 = pd.DataFrame(data.iloc[4]).transpose()
        aggregate = aggregate.append(row5)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...