Ответ
SQL: Используйте ключевое слово DISTINCT в запросе SELECT.
-- Выбрать уникальные города из таблицы пользователей
SELECT DISTINCT city FROM users;
-- Уникальные комбинации города и страны
SELECT DISTINCT city, country FROM users;
Python (с Pandas): Используйте метод unique() для Series или drop_duplicates() для DataFrame.
import pandas as pd
# Для Series
series = pd.Series([1, 2, 2, 3, 3, 3])
print(series.unique()) # array([1, 2, 3])
# Для DataFrame
df = pd.DataFrame({'A': [1, 1, 2], 'B': [3, 3, 4]})
unique_rows = df.drop_duplicates()
Python (чистый): Преобразуйте список в множество (set) или используйте dict.fromkeys() для сохранения порядка.
my_list = [1, 2, 2, 3]
unique_unordered = list(set(my_list)) # [1, 2, 3] (порядок может быть любым)
unique_ordered = list(dict.fromkeys(my_list)) # [1, 2, 3] (порядок сохранён)
Командная строка Linux: Комбинация sort и uniq. uniq удаляет только идущие подряд дубликаты, поэтому предварительная сортировка обязательна.
# Получить уникальные строки из файла
sort file.txt | uniq
# Посчитать количество вхождений каждой уникальной строки
sort file.txt | uniq -c Ответ 18+ 🔞
А, слушай, тут народ постоянно спрашивает, как избавиться от дублей, этих повторяющихся записей, которые как назойливые мухи — везде лезут. Ну, блядь, давай разберёмся, как их отфильтровать, чтобы в глазах не двоилось.
SQL: Тут всё просто, как три копейки. Есть волшебное слово DISTINCT. Сука, пишешь его в SELECT и вуаля — получаешь только уникальные значения, без этой всей ерунды.
-- Вытащить города так, чтобы каждый был в единственном экземпляре, а не как в том анекдоте про деревню Гадюкино
SELECT DISTINCT city FROM users;
-- А если нужно уникальное сочетание, типа город-страна, чтобы Париж из Франции не путать с Парижем из Техаса, блядь
SELECT DISTINCT city, country FROM users;
Python (с Pandas): О, это моя любимая библиотека, просто ёперный театр удобства. Для столбца (Series) юзаешь .unique(). Для целой таблицы (DataFrame) — .drop_duplicates(). И никакой магии, чистая механика.
import pandas as pd
# Для столбика с цифрами
series = pd.Series([1, 2, 2, 3, 3, 3])
print(series.unique()) # array([1, 2, 3])
# Для целой таблички
df = pd.DataFrame({'A': [1, 1, 2], 'B': [3, 3, 4]})
unique_rows = df.drop_duplicates() # И дублей как не бывало
Python (чистый, без наворотов): Тут, конечно, приходится немного подумать своей головой. Самый быстрый способ — загнать всё в set, но порядок элементов, блядь, может улететь в неизвестном направлении. Если порядок важен — dict.fromkeys() тебе в помощь, хитрая жопа.
my_list = [1, 2, 2, 3]
unique_unordered = list(set(my_list)) # [1, 2, 3] (но может выдать и [3, 2, 1], ёпта)
unique_ordered = list(dict.fromkeys(my_list)) # [1, 2, 3] (всё на своих местах, красота)
Командная строка Linux: А вот тут, сука, настоящая магия древних. Утилита uniq удаляет повторяющиеся строки, но только если они идут подряд! Поэтому без предварительной сортировки через sort — нихуя не выйдет. Запомни это как "Отче наш".
# Достать уникальные строки из файла
sort file.txt | uniq
# А если ещё и посчитать, сколько раз каждая строка встретилась — вообще красота
sort file.txt | uniq -c
Вот и вся наука. Главное — не путать инструменты, а то получится как у того немого Герасима: хочешь сказать одно, а получается "Му-му", и все вокруг охуевают.