Как мне извлечь значения из нескольких файлов CSV, которые находятся в разных подкаталогах в новый файл CSV?

1

Я новичок в написании сценариев. Любая помощь приветствуется!

Я пытаюсь получить значения от каждого из моих предметов. У каждого предмета есть свой каталог. В их каталоге находится CSV файл со значениями артериального давления, которые я хочу вытащить и сохранить в новый CSV файл.

CSV настроен так

    1     2     3     4   
    3.5   4.0   3.0   5.0 

Я хочу, чтобы скрипт нашел числа "1", "3" и "4", скопировал значения, связанные с ними, и сохранил их в новый CSV файл в моем рабочем каталоге.

Я нашел скрипт, который делает что-то похожее:

    awk -F "\"*,\"*" '{print $2}' textfile.csv

но как мне найти каталог, в котором находится CSV файл?

Я хотел бы запустить это для нескольких предметов одновременно, с новыми данными CSV, как это:

    SUBJECT01   3.5   3.0  4.0 
    SUBJECT02   4.0   2.0  6.0
    SUBJECT03   6.0   5.0  7.0

Заранее спасибо за любую помощь/совет.

  • 0
    Вы пытались использовать OS.walk ()? Он вернет итератор, который состоит из трех частей. И он будет перебирать все основные каталоги. Таким образом, если все каталоги ваших пациентов находятся в одном родительском каталоге, это должно позволить вам просмотреть все из них и получить данные .csv из каждого из них. Затем вы можете поместить их копии в нужное место.
  • 0
    ты в порядке с решением awk ?
Теги:

1 ответ

0

Так что я раньше не использовал awk, поэтому я сохраняю свой .csv в фрейме данных, используя Pandas. В этом сценарии я создаю список пар имя файла + датафрейм (где фрейм данных содержит конкретную запись пациента)

Я получаю информацию из подкаталогов, используя модуль OS walk():

import os
import pandas as pd

dfList = [] # holds the file name and the dataframe with its info
for a,b,c in os.walk(os.getcwd()): #creates an iterator that holds a 3 peice tuple where 'a' is path and c[0] is the file name
    if c[0].endswith('.csv'):
        dfList.append((os.path.basename(c[0]), pd.read_csv(a + '\\' + c[0])))

Теперь вы можете создавать сводный отчет на основе нового dfList. Я оставлю эти детали до вас.

Затем, чтобы сохранить ваш отчет, вы можете использовать pandas для csv:

finalDf.to_csv("FinalReport.csv")
  • 0
    вот ссылка на то, как объединить список фреймов данных: stackoverflow.com/questions/38089010/…
  • 0
    Если вам нравится ответ, пожалуйста, примите его, проверив его. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню