从 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)
我有一个 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)