Сохранять первое вхождение значения столбца-дубликата, только если оно имеет такое же значение в другом столбце - PullRequest
2 голосов
/ 08 июля 2019

Мне нужно сохранить только первое вхождение повторяющихся значений в столбце, если они имеют такое же значение в другом столбце. Другие дубликаты мне нужно заменить пустой строкой. Например, текстовый столбец с надписью «Как дела» должен отображаться только один раз, потому что в столбце даты он совпадает с датой «2016-09-10».

import pandas as pd

data = {'date': ['2016-09-10', '2016-09-10',
                 '2016-09-10', '2016-09-10',
                 '2016-09-12', '2016-09-12',
                 '2016-09-13', '2016-09-13'],
        'text': ['hey how are you', 'hey how are you', 'hey how are you', 'good thanks',
                  'good thanks', 'good thanks', 'good thanks', 'good thanks']}

df = pd.DataFrame(data)

Вывод в настоящее время выглядит так:

date           text
2016-09-10     hey how are you
2016-09-10     hey how are you
2016-09-10     hey how are you
2016-09-10     good thanks
2016-09-12     good thanks

Мой желаемый результат:

date           text
2016-09-10     hey how are you
2016-09-10     
2016-09-10     
2016-09-10     good thanks
2016-09-12     good thanks

1 Ответ

4 голосов
/ 08 июля 2019

Используйте DataFrame.duplicated с DataFrame.loc для установки пустых строк по условию:

df.loc[df.duplicated(['date','text']), 'text'] = ''

#if only 2 columns
#df.loc[df.duplicated(), 'text'] = ''
print (df)
         date             text
0  2016-09-10  hey how are you
1  2016-09-10                 
2  2016-09-10                 
3  2016-09-10      good thanks
4  2016-09-12      good thanks
5  2016-09-12                 
6  2016-09-13      good thanks
7  2016-09-13                 
...