DmnNovak
@DmnNovak
Начинающий верстальщик и долгий путь к front-end'у

Как сравнить 2 df в Пандасе?

У меня есть 2 столбца, вытянутые из файлов, там смешанные значения, есть как цифры, так и буквы, короче массив каша. Как мне их сравнить, сделать 3 столбец в формате True/False и затем выгрузить в отдельную таблицу?

В дальнейшем, я бы хотел добавить фильтр, к False массиву, типа что бы он отфильтровывал числовые массивы. Таким образом прийти к постепенному отсеиванию данных

df_kw = pd.read_excel(r'C:\Users\Bot\Desktop\файлик.xlsx', header=1, skiprows=4)
df_kw = df_kw.iloc[:, 0]

df_orig = pd.read_excel (r'C:\Users\Bot\Desktop\ключевики.xlsx')
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
Maksim_64
@Maksim_64
Data Analyst
1. Если в колонке сборник (строки, числа, пропущенные значения). То это тип 'object'. Что означает python object что в свою очередь надо понимать буквально, массив состоит из python объектов.

2. Операция сравнения двух объектов, не является однозначно трактованной операцией, в том числе и по этому в python существуют дандер методы которые позволяют переопределять операторы сравнения (вложить свой смысл что именно ты подразумеваешь по сравнением). Это я к тому что ты должен четко понимать что значит равны.

pandas объекты поддерживают сравнение в его собственной интерпретации и поведении. Если этого достаточно
то, все элементарно. Если сравнение используется для фильтра то такие колонки не хранят.
df = pd.DataFrame({
    'A':[1,'a',2],
    'B':[1,'a',3]
})

df.loc[df['A'] == df['B']]

Колонкам не обязательно быть из одного и того же фрейма, лишь бы размерность совпадала.
Если же нужно особое понимание сравнения. То пишется функция которая принимает два массива на вход и возвращает массив булевых значений, затем этот массив используется в качестве маски, для осуществления выборки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы