Pandas duplicate rows [duplicate]

Делегирование - единственное решение для выполнения таких операций, когда вы используете .xib-файлы, однако все описанные выше ответы предназначены для storyboard для .xibs-файлов, которые необходимо использовать для делегирования. это единственное решение, которое вы можете.

Другим решением является использование singleton class pattern, инициализирующее его один раз и использование его во всем приложении.

18
задан Rakesh Adhikesavan 21 September 2015 в 16:56
поделиться

2 ответа

Вот одно из возможных решений для возврата всех дублированных значений в двух столбцах (то есть в строках 0, 1, 3, 4, 6, 7):

>>> key1_dups = frame.key1[frame.key1.duplicated()].values
>>> key2_dups = frame.key2[frame.key2.duplicated()].values
>>> frame[frame.key1.isin(key1_dups) & frame.key2.isin(key2_dups)]
   key1  key2  data
0     1     2     5
1     2     2     6
3     1     2     6
4     2     2     1
6     2     2     2
7     2     2     8

( Изменить: на самом деле, метод df.duplicated(take_last=True) | df.duplicated() в ответе @ Yoel более аккуратный.)

Чтобы запросить результаты вашей операции groupby, вы можете использовать loc. Например:

>>> dups = frame[frame.key1.isin(key1_dups) & frame.key2.isin(key2_dups)]
>>> grouped = dups.groupby(['key1','key2']).min()
>>> grouped
           data
key1 key2      
1    2        5
2    2        1

>>> grouped.loc[1, 2]
    data    5
Name: (1, 2), dtype: int64

Альтернативно, верните grouped обратно в «нормальный» DataFrame, сбросив оба индекса:

>>> grouped.reset_index(level=0).reset_index(level=0)
   key2  key1  data
0     2     1     5
1     2     2     1
2
ответ дан Community 27 August 2018 в 20:32
поделиться

Чтобы получить список всех дублированных записей с помощью Pandas версии 0.17, вы можете просто установить 'keep = False' в функцию duplicated .

frame[frame.duplicated(['key1','key2'],keep=False)]

    key1  key2  data
0     1     2     5
1     2     2     6
3     1     2     6
4     2     2     1
6     2     2     2
7     2     2     8
9
ответ дан user666 27 August 2018 в 20:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: