Perhaps there is a way with the ArcGIS Python API? arcgis.features.GeoAccessor.from_df() will geocode the input table, and you can specify the geocoder used. There is also from_xy(), which would handle the lat/lon input.
So perhaps something like this? Haven't tested this out, but it might be a starting point.
import arcgis
import pandas as pd
# load your address table as a DataFrame; this will depend on its format, location, etc
# get the blank addresses
no_addrs = df[df['address_field'].isna() == True]
# get addresses
addrs = df[df['address_field'].isna() == False]
sdf_addrs = arcgis.features.GeoAccessor.from_df(addrs, 'address column', 'your geocoder')
sdf_noaddrs = arcgis.features.GeoAccessor.from_xy(no_addrs, 'lon', 'lat')
# merge into one dataframe
geocoded = pd.concat([sdf_addrs, sdf_noaddrs], ignore_index=True)
# then export / upload as needed
- Josh Carlson
Kendall County GIS