![](/img/trans.png)
[英]How to access dictionary within the list of dictionaries element in python?
[英]How to access to items in dictionaries within a list in python?
我在數據框中有一列,每行都是一個列表,它是許多具有相同鍵的字典的集合。 我想從字典中的同一個鍵中獲取所有項目。
我有這個清單:
s = [{'category': 'Public',
'name': 'Newspaper',
'person': 'A'},
{'category': 'Music',
'name': 'Andre',
'person': 'B'},
{'category': 'Music',
'name': 'Indian',
'person': 'A'},
{'category': 'Artist',
'name': 'Rihe',
'person': 'D'},
{'category': 'Interest',
'name': 'Sport',
'person': 'B'}]
我嘗試過使用循環和itemgetter,但是由於數據量很大,需要花費很多時間。 我正在尋找一種更有效的方法來做到這一點。
from operator import itemgetter
category = []
name_page = []
getter_category = itemgetter('category')
getter_name = itemgetter('name')
for element in s:
name_page.append(getter_name(element))
category.append(getter_category(element))
我想要一些更高效的東西:
s['category'] = ['Public','Music','Music','Artist','Interest']
s['name'] = ['Newspaper','Andre','Indian','Rihe','Sport']
s['person'] = ['A','B','A','D','B']
使用collections
defaultdict
from collections import defaultdict
o = defaultdict(list)
for ss in s:
for k, v in ss.items():
o[k] += [v]
print(dict(o))
Out[7]:
{'category': ['Public', 'Music', 'Music', 'Artist', 'Interest'],
'name': ['Newspaper', 'Andre', 'Indian', 'Rihe', 'Sport'],
'person': ['A', 'B', 'A', 'D', 'B']}
我不想使用字典。 我找到了最簡單的方法,它使用的是數據幀。
s = pd.DataFrame(s)
-------------------------
|category | name | person|
-------------------------
|Public | Music | Music |
---------------------------
|Newspaper | Andre | Indian|
----------------------------
s['category'].to_list() = ['Public','Music','Music','Artist','Interest']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.