Как я могу удалить строки из DataFrame, которые имеют повторяющиеся строки в нескольких столбцах? - PullRequest
2 голосов
/ 02 апреля 2019

У меня есть фрейм данных с несколькими столбцами, которые должны быть уникальной строкой, чтобы эта конкретная строка была действительной (т.е. в моем примере ниже у меня 4 столбца, поэтому должно быть 4 уникальных значения). Поэтому я хочу удалить любую строку, содержащую повторяющуюся строку в любом из столбцов.

Чувствуется, что это должно быть прямо, но я не могу понять это. Любая помощь с благодарностью!

import pandas as pd

df = pd.DataFrame([['a','b','c','d'],['a','c','d','c'],['b','a','e','g'],['a','a','c','f'],['b','c','b','d']],columns=['Pos1','Pos2','Pos3','Pos4'])


print(df)

  Pos1 Pos2 Pos3 Pos4
0    a    b    c    d
1    a    c    d    c
2    b    a    e    g
3    a    a    c    f
4    b    c    b    d


The output I want will drop row index 1 ('c' is repeated), row index 3 ('a' is repeated) and row index 4 ('b' is repeated)


  Pos1 Pos2 Pos3 Pos4
0    a    b    c    d
2    b    a    e    g

1 Ответ

2 голосов
/ 02 апреля 2019

Проверка количества уникальных значений в строках по DataFrame.nunique и сравнение по количеству столбцов по Series.eq (==) для фильтрации по boolean indexing:

df = df[df.nunique(axis=1).eq(len(df.columns))]
print (df)
  Pos1 Pos2 Pos3 Pos4
0    a    b    c    d
2    b    a    e    g
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...