That should work AFAIK. You might need to call draw_if_interactive to have it show up.
Something like this should also work and is a bit more explicit.
ax = df.a.plot()
ax = df.b.plot(secondary_y=True, style='g', ax=ax)
ax.invert_yaxis()
If you're working interactively, you might need to call
plt.draw_if_interactive()
Skipper