从 pandas.core.series.Series 字典中访问唯一项

accessing unique items from a pandas.core.series.Series dictionary

我有一个 pandas.core.series.Series 叫名字:

print names

0      [{'code': '8', 'name': 'John'}, {...
1      [{'code': '1', 'name': 'Harry'},...
2      [{'code': '5', 'name': 'Pete'...
3      [{'code': '1', 'name': 'Harry'...

如果只有10个代码和10个唯一的名字属于他们。我如何获得这 10 个名称的输出?我的第一个猜测是:

names.unique()

但我得到 TypeError: unhashable type: 'list'

请帮忙。

您可以使用 concat + list comprehension with DataFrame constructor and Series.unique:

df = pd.concat([pd.DataFrame(x) for x in names.values.tolist()])
un = df['name'].unique()
print (un)

apply + numpy.concatenate + numpy.unique的另一个解决方案:

un = np.unique(np.concatenate(names.apply(lambda x: [y['name'] for y in x])))
print (un)