#python #pandas #sequence
Вопрос:
в швейной компании существуют сотни швейных машин, которые нам нужны для контроля их производительности(например,сколько изготовлено деталей, среднее время на единицу и т. Д.). Для конкретного дня и для конкретной машины существует последовательность рисунка строчки. Таким образом, используя этот шаблон сшивания, вы сможете рассчитать количество деталей.
образец заданной последовательности рисунка строчки для конкретного дня и для конкретной машины:
222243243
здесь 2=выполнить, 4=исправить, 3=вырезать. несмотря на то, что это заданная последовательность, фактический сценарий может немного отличаться. это может быть 22222 4343 2 4343 (больше сигналов запуска с изменением порядка исправлений и сокращений) или 22222 4343 2 4343 2 4343 (с дополнительным сигналом запуска, исправлениями и сокращениями в конце)
при просмотре данных можно определить это невооруженным глазом.
Как я уже упоминал, просмотр данных позволяет идентифицировать эти фрагменты по отдельности. необходимо идентифицировать эти фрагменты с помощью кода python, используя заданный шаблон последовательности.
Наконец, необходимо определить количество деталей для любой данной машины, используя заданный шаблон строчки последовательности.
sample of another few given sequences(there a lot of sequence patterns):
243243,
222432224322243
So, To do that need to build a common python code that can be able to change when the given sequence change.SO using that can be able to identify the number of pieces.
I built a code to count the pieces for a particularly given sequence, but I have no idea to generalize this to identify any given sequence. Any suggestions and recommendations are highly appreciated!!!!
My working:
just to count a specifically given sequence.(need to generalize this for any given sequence)
# Accumulate sequences of interest
seqs = []
seq_start = None
for index,row in df.iterrows():
# Is the current row of interest?
of_interest = row.Signal == 2
if of_interest :
if seq_start is None :
# First interesting row in a potential sequence
seq_start = index
else:
# This row is no longer of interest, so see if a sequence has occurred...
if seq_start is not None :
# This row is not of interest. The sequence ended with the previous row.
seq_end = index - 1
# Enough rows to be a sequence?
if seq_end - seq_start >= 3 :
seqs.append([seq_start, seq_end])
seq_start = None
In the above code, I identified as a piece if there are 3 or more run signals continoesly. seqs returns the number of pieces.