Consider Toy dataframe
Dataframe 1:
d = {'DateTime': ['2007-01-01 00:00:00', '2007-01-01 10:00:00', '2007-01-01 16:00:00',
'2012-01-03 10:00:00', '2012-01-03 12:00:00', '2015-01-02 00:00:00',
'2017-01-03 23:00:00'],
'x': [1, 2, 3, 4, 5, 6, 7]}
df1 = pd.DataFrame(d)
df1.set_index(['DateTime'], inplace=True)
df1.index = pd.to_datetime(df1.index)
Dataframe 2 :
d = {'dat': ['2007-01-01 ', '2015-01-02'],'y': [1, 1]}
df2 = pd.DataFrame(d)
df2.set_index(['dat'], inplace=True)
df2.index = pd.to_datetime(df2.index)
Desired output:
DateTime X Y
2007-01-01 00:00:00 1 1
2007-01-01 10:00:00 2 1
2007-01-01 16:00:00 3 1
2012-01-03 10:00:00 4 0
2012-01-03 12:00:00 5 0
2015-01-02 00:00:00 6 1
2017-01-03 23:00:00 7 0
I tried this but it removed the rows for which zero was inputed and also the values of hour of same day i.e '1' was not repeated over each hour
result = pd.merge(df1, df2, how="inner", on=["DateTime"])
