У меня есть кадр данных, который выглядит следующим образом:
df_pairs
128.437 128.437 121.639 5100.9 5029.08 5029.08 4888.81 4888.81 0 0 0 0 0 0
129.588 129.588 122.79 5102.05 5030.24 5030.24 4959.55 4959.55 4889.96 4889.96 0 0 0 0
Я хотел бы сохранить все уникальные значения в каждой строке и уменьшить каждое повторяющееся значение только до 1 из парных значений.
Вывод будет:
df_unique
128.437 121.639 5100.9 5029.08 4888.81 0 0 0
129.588 122.79 5102.05 5030.24 4959.55 4889.96 0 0
Итак, как вы можете видеть, теперь у каждой строки есть пара / 2, если эта пара равна.
Псевдокод будет выглядеть примерно так:
df_unique = pd.DataFrame(columns=df_pairs.columns)
for columns in range(len(df_pairs.columns)):
if df_pairs.iloc[row_element] == df_pairs.iloc[row_element+1]:
unique_element = df_pairs.iloc[row_element]
df_unique[new_row_element] = unique_element
Есть ли способ сделать это быстро, без итерации по каждой строке каждой пары по элементам?
Я не могу просто удалить все дубликаты с df.drop_duplicates()
из-за того факта, что могут быть повторениязначения в строках, которые не обязательно являются соседними парами, а также тот факт, что есть 0, которые я хочу сохранить в уникальных парах, если они встречаются.