add labels bar chart
Unfortunately, adding text to the plot must be done manually. See the example below.
fig, ax = plt.subplots(figsize=(10,5))
df.plot.bar(ax=ax, fontsize=14)
for i, v in enumerate(df['counts']):
    ax.text(i + .25, v + 3, str(v))

Similarly, you can do for the horizontal barplot.
fig, ax = plt.subplots(figsize=(10,5))
df.plot.barh(ax=ax, fontsize=14)
for i, v in enumerate(df['counts']):
    ax.text(v + 3, i + .25,  str(v))