Как проверить pandas.Dataframe для дубликатов столбцов? - PullRequest
0 голосов
/ 12 октября 2018

Мне приходится иметь дело с данными, которые являются частично необработанными, частично извлеченными.Я подозреваю, что эти две колонки являются дубликатами.В SQL я могу сделать что-то вроде

SELECT col1, col2 FROM table where col1 != col2

Но как мне сделать что-то подобное в Python для pandas.Dataframe?Более конкретно, как мне сравнить два столбца файла CSV и / или объекта Dataframe, а затем увидеть значения или строки, которые соответствуют или не соответствуют моим критериям для сравнения.

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Если вы просто пытаетесь удалить строки, содержащие одно и то же значение в двух столбцах, вы можете использовать синтаксис df[df.col1 == df.col2] или df[(df.col1 == df.col2) & (df.col1 == 'some_value') & ...] для нескольких условий.

Если вы хотите сравнить по всем строкам, используйтеdf.drop_duplicates()

Если вы пытаетесь сравнить целые столбцы, используйте df['col1'].equals(df['col2'])

0 голосов
/ 12 октября 2018

Для этого примера кадра данных:

   Val1  Val2  Val3
0     1     2     3
1     1     1     3
2     3     2     1
3     2     2     2
4     1     2     3
5     2     2     2
6     1     1     3

Вы можете найти строки, в которых Val1 значение столбца равно Val2 значение столбца:

df[df['Val1']==df['Val2']]

Выход:

   Val1  Val2  Val3
1     1     1     3
3     2     2     2
5     2     2     2
6     1     1     3

Или, если хотите, !=:

df[df['Val1']!=df['Val2']]

Выход:

   Val1  Val2  Val3
0     1     2     3
2     3     2     1
4     1     2     3
...