Your categories aren't unique. What do you want to see on the x-axis?
Suppose they were unique, then you could simply do:
import pandas as pd
import seaborn as sns
sns.set()
df = pd.DataFrame()
df['category'] = ['A','B','C','D','E','F']
df['val1'] = [2,3,4,3,4,3]
df['val2'] = [3,4,5,3,5,3]
df['val3'] = [2,1,2,2,2,2]
df.set_index('category').plot(kind='bar', stacked=True)

Edit: seaborn
doesn't support stacked bar charts natively, but here's a hacky way if you need to (or if others are looking for what's actually in the title).
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
df = pd.DataFrame()
df['category'] = ['A','B','C','D','E','F']
df['val1'] = [2,3,4,3,4,3]
df['val2'] = [3,4,5,3,5,3]
df['val3'] = [2,1,2,2,2,2]
# create total columns
df['v1+v2+v3'] = df.val1 + df.val2 + df.val3
df['v1+v2'] = df.val1 + df.val2
# plot total
g = sns.barplot(x=df['category'], y=df['v1+v2+v3'], color='green', label='val3')
# plot middle values
g = sns.barplot(x=df['category'], y=df['v1+v2'], color='orange', label='val2')
# plot bottom values
g = sns.barplot(x=df['category'], y=df['val1'], color='blue', label='val1')
# rename axes
g.set_ylabel('vals')
g.set_xlabel('categories')
plt.legend()
