Вероятно, не самое оптимальное решение, но это работает
Создайте столбец индикатора с именем value
, который указывает, когда было совпадение.
Объединить два кадра данных на основе ключей age
и name
Затем использовать np.where
, чтобы условно проверить, было ли совпадение, и изменить значение колонка luckynumber
df2['value'] = 1
df3 = pd.merge(df1, df2, left_on=['age', 'name'], right_on=['age', 'name'], how='left')
df3['luckynumber'] = np.where(df3.value == 1, -1, df1.luckynumber)
df3.drop('value', axis=1, inplace=True)
Вывод:
age luckynumber name
0 18 10 John
1 23 20 Mark
2 23 -1 Alice
3 27 40 Alice
Смотрите на Joda-разовый.
Из документации:
"Joda-разовый был создан для радикального изменения обработки даты и времени в Java. Классы JDK Дата и Календарь очень плохо разработаны, имели многочисленные ошибки и имеют нечетные эффекты производительности".
Существует перекрестное соединение к переходу на летнее время в тот день.
Вы находитесь в Новой Зеландии? Если так, это означает, что Ваши файлы часового пояса устарели. Лучше перейдите к сайту для скачивания Java и загрузите новые; ищите "JDK Инструмент Обновления Часового пояса DST".