Таким образом, моя общая цель - отслеживать тенденции производительности нового производственного оборудования с течением времени, используя двухнедельные интервалы для создания коробочных графиков для каждого отдельного теста. Для каждой части оборудования было выполнено более 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)