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

时间:2017-05-24 13:10:28

标签: python pandas list series

我有一个叫做名字的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类型:'list'

请帮忙。

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

names.str.get(0).apply(pd.Series)['name'].unique()

.str.get访问名称系列

中包含的列表中的第一个字典

.apply(pd.Series)将该字典转换为数据框

最后,使用unique查看“名称”的内容。

答案 1 :(得分:0)

您可以将concat + curl -ulist comprehension构造函数和Series.unique一起使用:

DataFrame

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

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