Cumulative counts of items in a Pandas dataframe
You can group by the name and then append an increasing number to it:

import pandas as pd

def add_count(x):
    return x + ([""] + list(map(str, range(1, len(x)))))

df = pd.DataFrame(['vegetable', 'fruit', 'meat', 'dairy', 'meat', 'fruit', 'fruit'],
                  columns=["name"])
x = df.groupby("name", as_index=False)["name"].apply(add_count)
df["name2"] = x.reset_index(level=0, drop=True)
print(df)
#         name       name2
# 0  vegetable   vegetable
# 1      fruit       fruit
# 2       meat        meat
# 3      dairy       dairy
# 4       meat       meat1
# 5      fruit      fruit1
# 6      fruit      fruit2


This avoids manually iterating over rows or columns, something that is usually a good thing when dealing with pandas dataframes.