What is the best way to create a new column and assign a value if date falls between two dates in another dataframe ?
e.g.
dataframe A
date
This is an example of something that's really straightforward to do in one step in sql, but not so much in Pandas. So with the proviso that I don't love this approach, here it is.
_
# First Full Outer Join Dataframes
# (Requires a Common Column in Pandas Unlike SQL)
df_A['fake key'] = 1
df_B['fake key'] = 1
outer_join = pd.merge(df_A, df_B, how='outer', on='fake key')
# Now Filter Back down to Desired Rows/Columns
desired_rows = outer_join.query('date < end and date > start')
desired_columns = ['date', 'values', 'id']
final = desired_rows[desired_columns]
final
output:
date values id
0 2017-05-16 x 34
5 2017-04-12 y 32
The things that make this answer somewhat unsatisfying to me are: