У меня есть df, который выглядит так:
col1 col2
aa aa
cc bb
dd dd
Как сравнить оба столбца в одном df, но удалить дубликаты и сохранить уникальность в соответствующих столбцах?
новый df:
col1 col2
cc bb
@WillemVanOnsem правильно
Мы можем создать фильтр, который проверяет, отличается ли значение df.col1
от df.col2
, а затем фильтровать, например:
df[df.col1 != df.col2]
Например:
>>> df = pd.DataFrame([['aa', 'aa'], ['cc', 'bb'], ['dd', 'dd']], columns=['col1', 'col2'])
>>> df
col1 col2
0 aa aa
1 cc bb
2 dd dd
>>> df[df.col1 != df.col2]
col1 col2
1 cc bb
Здесь мы создаем фрейм данных новый, но таким образом мы можем установить df
в новый фрейм данных, например:
df = df[df.col1 != df.col2]
Это должно помочь:
df[df[col1] != df[col2]]
Если вы просто хотите извлечь строки, которые имеют одинаковое значение в столбцах, это должно сработать.
import pandas as pd
data = {'a':[40, 30, 10],
'b':[40, 20, 10]}
df = pd.DataFrame(data)
df = df[~(df['a']==df['b'])]
Выход
>>> df
a b
0 10 40
2 30 10
Итак, вам нужны строки, в которых значение
col1
равно нет, равное соответствующему значению вcol2
?