У меня есть фрейм данных, который называется данными. Кроме того, у меня есть 2057 столбцов и 197 строк в dataframe group1, я хочу знать, какая строка похожа на другую. Я сделал это:

group1=pd.crosstab(data.column1,data.column2)
 group1["EsDuplicado?"]=group1.duplicated(subset=group1.columns.difference(['BCP_Nombre_de_la_Matriz__c']),keep=False)

До сих пор он работал, и я добавил новый столбец со значением true (если строка похожа на другую) или false, если строка не похожа.

Я хочу знать, какие строки похожи, и точно знать свою пару.

До сих пор моя таблица была такой:

enter image description here

Но я бы хотел что-то вроде этого:

enter image description here

Или, может быть, в этом нет необходимости, а может быть достаточно, если строки находятся рядом друг с другом, таким образом я знаю, какая строка похожа.

Я хочу что-то вроде этого, но в этом примере всего 2 столбца, в моем случае у меня 2057 столбцов:

найти повторяющиеся строки в кадре данных pandas

0
FERNANDO FERNANDEZ 15 Апр 2020 в 01:48

1 ответ

Лучший ответ

Ответ @ cs95 на вопрос, который вы связали, можно просто обобщены на любое количество столбцов.

Вот небольшой пример набора данных для тестирования, но я сделаю второй блок кода общим, чтобы он также работал для вашего DataFrame, если его имя - group1.

import pandas as pd

group1 = pd.DataFrame({'column 1': [1, 1, 1, 1, 1, 1], 
                       'column 2': [2, 2, 2, 2, 2, 2], 
                       'column 3': [3, 4, 3, 5, 3, 4]})
group1
    column 1    column 2    column 3
0   1           2           3
1   1           2           4
2   1           2           3
3   1           2           5
4   1           2           3
5   1           2           4
group1['first such row'] = group1.groupby(list(group1.columns))[group1.columns[0]
                                                               ].transform('idxmin')    
group1
    column 1    column 2    column 3    first such row
0   1           2           3           0
1   1           2           4           1
2   1           2           3           0
3   1           2           5           3
4   1           2           3           0
5   1           2           4           1
0
Arne 15 Апр 2020 в 14:42