A very long two liner that should be broken up:
idx = pd.DatetimeIndex(start=min(df.Date), end=max(df.Date), freq='D')
df2 = (pd.DataFrame(df.set_index(['Date', 'Curr']).unstack('Curr'), index=idx).fillna(0)
+ df.set_index(['Date', 'Curr']).unstack('Curr')).ffill().stack()
>>> df2
Amount
Curr
2015-01-01 AUD 100
USD 100
2015-01-02 AUD 125
USD 125
2015-01-03 AUD 125
USD 125
2015-01-04 AUD 125
USD 125
2015-01-05 AUD 110
USD 110
2015-01-06 AUD 115
USD 115
Looking in detail, I first create a DatetimeIndex using the min and max dates from the original DataFrame. I set the frequency to Daily ('D'), but you may want to use another offset frequency such as Business Days ('B'):
idx = pd.DatetimeIndex(start=min(df.Date), end=max(df.Date), freq='D')
I then unstack the DataFrame so that I just have the dates in the index.
df_temp = df.set_index(['Date', 'Curr']).unstack('Curr')
>>> df_temp
Amount
Curr AUD USD
Date
1/1/2015 100 100
1/2/2015 125 125
1/5/2015 110 110
1/6/2015 115 115
I create a temporary DataFrame that will be all NaNs but contain my new expanded list of dates. I fill this DataFrame with zeros and overlay it with the values from df_temp:
df_temp2 = (pd.DataFrame(df_temp, index=idx).fillna(0) + df_temp)
>>> df_temp2
Amount
Curr AUD USD
2015-01-01 100 100
2015-01-02 125 125
2015-01-03 NaN NaN
2015-01-04 NaN NaN
2015-01-05 110 110
2015-01-06 115 115
Finally, I fill forward the values to remove the NaNs, and stack the currencies:
>>> df_temp2.ffill().stack()
Amount
Curr
2015-01-01 AUD 100
USD 100
2015-01-02 AUD 125
USD 125
2015-01-03 AUD 125
USD 125
2015-01-04 AUD 125
USD 125
2015-01-05 AUD 110
USD 110
2015-01-06 AUD 115
USD 115