Как получить уникальные пары из данного столбца фрейма данных с обработкой файлов? - PullRequest
1 голос
/ 04 февраля 2020

выборка данных из фрейма данных: sample data from dataframe

Пары

(8, 8), (8, 8), (8, 8), (8, 8), (8, 8)
(6, 7), (7, 7), (7, 7), (7, 6), (6, 7)
(2, 12), (12, 3), (3, 4), (4, 12), (12, 12)

    ```

        new_col = []
            for e in content.Pairs:
            new_col.append(list(dict.fromkeys(e)))
            content['Unique'] = new_col

    ```

ожидается вывод уникальных пар из столбца Pair, например:

(8, 8),(6, 7),(7, 6),(7, 7),(2, 12) so on

то, что я получаю, это результат, когда я пытаюсь использовать приведенный выше код:

Уникальный

['8', '']
['6', '7', '']
['2', '12', '3', '4', '']

В чем проблема с данными, если я работаю с данными вручную, тогда работает, почему не в кадре данных

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Вы можете использовать метод set :

data = (((8, 8), (8, 8), (8, 8), (8, 8), (8, 8)),
  ((6, 7), (7, 7), (7, 7), (7, 6), (6, 7)),
  ((2, 12), (12, 3), (3, 4), (4, 12), (12, 12)))

uniques = []

for col in data:
  for unique in list(set(col)):
    uniques.append(unique)

for x in uniques:
  print(x)

ИЛИ :

data = (((8, 8), (8, 8), (8, 8), (8, 8), (8, 8)),
  ((6, 7), (7, 7), (7, 7), (7, 6), (6, 7)),
  ((2, 12), (12, 3), (3, 4), (4, 12), (12, 12)))

uniques = []

for col in data:
  uniques += [unique for unique in list(set(col))]

for x in uniques:
  print(x)
0 голосов
/ 05 февраля 2020

Вы можете использовать метод set () для удаления дубликатов из списка кортежей.

 >>> items = [(8, 8), (8, 8), (8, 8), (8, 8), (8, 8),
(6, 7), (7, 7), (7, 7), (7, 6), (6, 7),
(2, 12), (12, 3), (3, 4), (4, 12), (12, 12)]
>>> set_items = set(items)
>>> set_items
{(6, 7), (7, 6), (12, 12), (7, 7), (8, 8), (4, 12), (2, 12), (3, 4), (12, 3)}
...