Данные, которые у меня есть, на самом деле содержатся в фрейме данных pandas (в столбце), но ради этого поста мы извлекаем их, чтобы добраться до сути проблемы.
Предположим, у нас есть фрейм данныхdf
со столбцом col1
, который мы храним в виде списка: L = df.col1.tolist()
.Теперь у меня есть около 2000 таких столбцов / списков, и в среднем они имеют длину около 300-400.Так что здесь нет большой необходимости в производительности.
Возвращаясь к нашему списку MWE, он структурирован с такими элементами (ish):
L = [1,2,2,1,3,3,4,4,5,5,6,6,1,2,1,2,7,7,8,8]
Теперь способ, которым элементы в списке должны быть структурирован,это последовательных пар (но по причинам сбора данных, они не).Итак, вот отсортированный список, к которому мы стремимся:
L = [1,1,2,2,3,3,4,4,5,5,6,6,1,1,2,2,7,7,8,8]
Я добавил их в качестве кортежей просто для ясности:
L = [(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(1,1),(2,2),(7,7),(8,8)]
Эта проблема: столбцы содержат почти последовательных пар предметов (номера в приведенном выше примере), но некоторые из них вышли из строя и должны быть возвращены своему партнеру (см. Выше).
Несколько вещей, на которые следует обратить внимание:
- Приведенный выше список содержит числа, на самом деле мы имеем дело со строками
- Данные обычно живут в столбце вpandas dataframe (не уверен, поможет ли это, но может)
- Производительность на самом деле не является проблемой, так как их нужно будет отсортировать только один раз
- Неупорядоченный шаблон не непротиворечиво, и в каждом столбце многое меняется, важно то, что каждый элемент сопоставляется с его партнером.
Я ищу метод, который может сортировать эти списки /столбцы в требуемом последовательном порядке.Спасибо!