Создание Python подмножества Pandas фрейма данных на основе списка терминов и выходной блокпоста с течением времени - PullRequest
0 голосов
/ 13 апреля 2020

Таким образом, моя общая цель - отслеживать тенденции производительности нового производственного оборудования с течением времени, используя двухнедельные интервалы для создания коробочных графиков для каждого отдельного теста. Для каждой части оборудования было выполнено более 400 тестов.

Я пытаюсь создать подпрограмму, которая группирует связанные тесты так, чтобы каждый конкретный c тест мог легко составляться с течением времени. Я уже создал подпрограмму, которая разбивает общие тестовые данные на произвольно большие двухнедельные периоды, поскольку за это время можно протестировать любое количество единиц. В конце концов мне нужно будет объединить их вместе - создать коробочную диаграмму для каждого двухнедельного периода во временном интервале для каждого перечисленного теста на новом оборудовании.

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

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

Это сделало бы построение графиков / сравнительных тестов во времени чрезвычайно простым для выполнения. Возможна ли здесь датафрейм? Альтернативные подходы также приветствуются!

Примечание: список тестов и база данных результатов тестов хранятся локально в виде файлов CSV, а результаты базы данных считываются как фрейм данных. Соответствующие столбцы:

'step_name', 'data', 'uut_serial_number', 'start_date_time', 'uut_test_type'

Мой соответствующий код на сегодняшний день выглядит следующим образом:

tests=list(csv.reader(open('Data/listOfTests.csv')))
tests.pop(0)
#returns list of tests without column header

...#work in progress

#attempt at creating an intersection
testdf=df.apply(lambda x: set.intersection(df.step_name, tests))

...#work in progress

#working code for two week period with boxplot graphic
start_date=pd.to_datetime(statsdf['start_date_time'].min())
start_date=start_date.floor('D')

end_date=pd.to_datetime(statsdf['start_date_time'].max())
end_date=end_date.floor('D')

index=pd.date_range(start_date, end_date)
temp_date=start_date

while temp_date <= end_date:
    print(temp_date)
    series=statsdf['start_date_time'].between(temp_date, (temp_date+timedelta(weeks=2)), inclusive=True)
    tempdf=statsdf[series]
    tempdf.boxplot( column=['data'], by=['step_name'],  rot=90, grid = True, figsize=(9,9), autorange=True)
    mp.pyplot.show()
    temp_date+=timedelta(weeks = 2)
...