Поскольку вы не предоставили минимальный воспроизводимый пример, я попытаюсь воссоздать его.
Я предполагаю, df
- это кадр данных, а df['StockCode']
- это Series, содержащий строки:
In [287]: ds = pd.Series(['one','two','one','three','two'])
In [288]: ds
Out[288]:
0 one
1 two
2 one
3 three
4 two
dtype: object
тогда мы получим список строк:
In [289]: x = ds.values.tolist()
In [290]: x
Out[290]: ['one', 'two', 'one', 'three', 'two']
и найдем уникальные:
In [291]: alist = []
In [292]: for i in x:
...: if i not in alist:
...: alist.append(i)
...:
In [293]: alist
Out[293]: ['one', 'two', 'three']
и посчитаем их:
In [294]: freq = []
In [295]: for i in alist:
...: freq.append(x.count(i))
...:
In [296]: freq
Out[296]: [2, 2, 1]
column_stack из двух строк создает 2d массив, строка dtype:
In [297]: np.column_stack((alist, freq))
Out[297]:
array([['one', '2'],
['two', '2'],
['three', '1']], dtype='<U21')
column_stack
не может создать список или массив массивов, поэтому вы должны делать что-то большее.
Python sorted
будет обрабатывать массив как список, так же, как `list (..) или понимание списка в массиве 2d:
In [298]: [a for a in _]
Out[298]:
[array(['one', '2'], dtype='<U21'),
array(['two', '2'], dtype='<U21'),
array(['three', '1'], dtype='<U21')]
Вы можете воссоединиться с массивами с:
In [299]: np.vstack(_)
Out[299]:
array([['one', '2'],
['two', '2'],
['three', '1']], dtype='<U21')