У меня есть пандас данных около 70000 строк, и 4500 из них являются дубликатами оригинала.Столбцы представляют собой смесь строковых столбцов и числовых столбцов.Интересующий меня столбец - это столбец value
.Я хотел бы просмотреть весь кадр данных, чтобы найти строки, которые полностью идентичны, посчитать количество дублированных строк в строке (включая оригинал) и умножить value
в этой строке на количество дубликатов.
Я не совсем уверен, как это сделать с самого начала, но я пытался использовать df [df.duplicated (keep = False)] для получения кадра данных df1
дублированных строк (включительнооригинальных рядов).Я добавил колонку Истин до конца df1
.Я пытался использовать .groupby с комбинацией столбцов для суммирования числа истин, но результат не смог уловить истинное количество дубликатов (в этом случае я получил около 3600 уникальных дублированных строк).
Вот мой фактический код:
duplicate_bool = df.duplicated(keep = False)
df['duplicate_bool'] = duplicate_bool
df1= df[duplicate_bool]
f = {'duplicate_bool':'sum'}
df2= df1.groupby(['Date', 'Exporter', 'Buyer', \
'Commodity Description', 'Partner Code', \
'Quantity', 'Price per MT'], as_index = False).agg(f)
Моя идея заключалась в том, чтобы получить отдельный фрейм данных df2
без дубликатов, и я мог бы умножить запись в столбце value
внутри начисло хранится в суммированном столбце duplicate_bool
.Затем я просто добавлю df2
к моему исходному фрейму данных после удаления всех дубликатов, идентифицированных с помощью .duplicated.
Однако, если я использую groupby со всеми столбцами, я получаю пустой фрейм данных.Если я не использую все столбцы, я не получу истинное количество дубликатов и не смогу добавить его каким-либо образом.
Я думаю, что я хотел бы найти лучший способ сделать этотак как я запутываю себя