Так ведь в этой программе новый столбец в датафрейме не создаётся. Чтобы создать нужно ему дать имя:
df['newcol']=...какие-то действия...
Далее, среднее от чего ? Если от Value то оно будет 75/4=18,75 т.е. это будет прописано в каждой строке в новом столбце ?
Тогда просто
df['mean1']=df['Value'].mean() # значение mean пропишется в каждой строке столбца
UPD колонка пропадает потому что pandas вероятно берёт в результат только указанную колонку Symbol и ко всем остальным цифровым применяет агрегатную функцию , в данном случаем mean(). Оставлять другие текстовые колонки в результирующем наборе было бы бессмысленно т.к. часть строк из них при группировке по Symbol просто пропадёт.
Относительно добавления сразу двух столбцов - можно посмотреть "pandas add multiple columns". Можно например так
df['a'], df['b']=list1,list2 #оба списка по длине равны длине колонки
но с учётом того, что в этой же строке нужно посчитать count() и прописать соответствующее значение в строки с каждым соответствующим значением Value получится довольно громоздкая конструкция.
df.groupby(['Name']).size()
Out[95]:
Name
Igrek 1
Iks 2
zet 1
dtype: int64
Затем создать соответствие элемент/число вхождений, и по этому соответствию прописать цифры в новом столбце по каждой строке
df.groupby(['Name']).size().index.tolist()
df.groupby(['Name']).size().tolist()
d=dict( zip (df.groupby(['Name']).size().index.tolist(), df.groupby(['Name']).size().tolist() ) )
d
Out[98]: {'Igrek': 1, 'Iks': 2, 'zet': 1}