Справочная информация
Я работаю над DataFrame, где я успешно соединил два разных набора данных футболистов, используя fuzzymatcher. Эти наборы данных не имели ключей для точного соответствия и должны были быть сделаны по их именам. Пример совпадения столбца имени из двух баз данных для объединения в одну:
long_name name
L. Messi Lionel Andrés Messi Cuccittini
В рамках процесса проверки базы данных из 18 000 строк я хочу проверить два столбца даты рождения в объединенный DataFrame - df
, обеспечивающий совпадение столбцов, как в примере ниже
dob birth_date
1987-06-24 1987-06-24
Оба столбца даты были преобразованы из строк в даты с использованием pd.to_datetime()
, например,
df['birth_date'] = pd.to_datetime(df['birth_date'])
Мой вопрос
Мой запрос, у меня есть еще один столбец с именем 'value'. Я хочу обновить мой pandas DataFrame, чтобы при совпадении двух столбцов даты запись не изменялась. Однако, если два столбца даты не совпадают, я хочу, чтобы данные в этом столбце значений были изменены на ноль. Это то, что я могу сделать довольно легко в Excel с вычислением date_diff, но я не уверен в pandas.
Мой текущий код следующий:
df.loc[(df['birth_date'] != df['dob']),'value'] = np.nan
Причина этого шага (не стесняйтесь пропускать)
Причина этого кода в том, что он быстро покажет мне нечеткие совпадения, которые являются неточными (примерно 10% от общей базы данных), и позволит мне быстро исправить их.
В идеале мне нужно также поработать над алгоритмом сопоставления, чтобы обеспечить идеальное совпадение по дате, однако мой текущий алгоритм в настоящее время работает достаточно хорошо в своем текущем состоянии, и проект почти завершен. Любой совет по этому поводу, однако я был бы рад услышать, если это то, что вы знаете о
Большое спасибо заранее!