Python: я хочу проверить, имеет ли строка несколько одинаковых значений для любого из столбцов в кадре данных, и если да, заменить повторяющееся значение на ноль - PullRequest
0 голосов
/ 04 февраля 2019

Я новичок в stackoverflow, извините, пожалуйста, мое форматирование

Мой DataFrame выглядит следующим образом:

Col1    Col2    Col3    Col4    Col5

A       B       null    A       D
A       B       C       F       C

Так как в первой строке Col4 имеет повторныйзначение, т. е. я хочу заменить его на ноль.
Аналогично, во второй строке Col5 имеет повторяющееся значение, я хочу заменить его на ноль.

Конечный кадр данных должен выглядеть следующим образом:

Col1    Col2    Col3    Col4    Col5

A       B       null    null    D
A       B       C       F       null

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Используйте Series.drop_duplicates с apply и axis=1 для процессов по строкам:

df = df.apply(pd.Series.drop_duplicates, axis=1)
print (df)
  Col1 Col2 Col3 Col4 Col5
0    A    B  NaN  NaN    D
1    A    B    C    F  NaN
0 голосов
/ 04 февраля 2019

Использование pandas.series.duplicated :

import pandas as pd

df = pd.DataFrame({'a':['A','C'], 'b':['B','D'], 'c':['A', 'D']})
mask = df.apply(pd.Series.duplicated, 1)

print(df.mask(mask, 'None'))

Вывод:

   a  b     c                                                                                                                         
0  A  B  None                                                                                                                         
1  C  D  None 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...