У меня есть файл Excel в фрейме данных old_df
, с которым я постоянно обновляю данные, добавляя новые дополнения из другого фрейма данных файла Excel new_df
.Я просто pd.concat
вижу новые и старые кадры вместе, если одна из дат в новом кадре данных не существует в старом.
В настоящее время некоторые из важных столбцов в этом файле:
Pub Date Forecast Time Forecast Date State Temp
2018-12-12 23:00:00 2018-12-20 AK 3
2018-12-12 02:00:00 2018-12-20 AK 3.2
2018-12-12 05:00:00 2018-12-20 AK 2.9
.
.
Я хочу удостовериться, что выдаю повторяющиеся строки при обновлении этого старого файла новыми данными - пропуская неуникальные экземпляры Pub Date
с Forecast Time
, Forecast Date
и State
.
Прямо сейчас я использую довольно плохой метод для этого, беря список Pub Dates
для нового и старого:
dateList_old = date_old.tolist()
dateList_new = date_new.tolist()
result = any(elm in dateList_new for elm in dateList_old)
if result == True:
print('One or more of the dates already exists in the database')
sys.exit()
else:
frames = [old_df,new_df]
result = pd.concat(frames)
result.to_excel("file", encoding="utf-8", index=False)
Но это столкнется с проблемами, потому что, скажем, если яЯ должен был добавить один и тот же Pub Date
любого вида - он завершил бы всю запись.
Я хотел бы сделать так, чтобы, если Pub Date + Forecast Time + Forecast Date + State
находится в old_df
, тогда пропустить и продолжить запись всех остальныхнесуществующие строки, которые выходят из , только если все эти комбинации уже существуют .
Есть ли простой способ сделать это?